PCKまであと2日
今日はひたすらAOJでPCKの過去問を解きまくって
13時にはみんなが競争してたからJROに参加してちゃっかり一位を取ってきた。。。
解きまくったって言っても5問だけど。
ってか入力ムズい問題はダメだと思う。
0066
一回凡ミスしたけどやるだけ。
#include <iostream> using namespace std; int main() { string str; char map[3][3]; while (cin>>str) { for (int i=0; i<3; i++) for (int j=0; j<3; j++) map[i][j] = str[i*3+j]; char res = 'd'; for (int i=0; i<3; i++) if (map[i][0]==map[i][1]&&map[i][1]==map[i][2]&&map[i][0]!='s') res = map[i][0]; for (int i=0; i<3; i++) if (map[0][i]==map[1][i]&&map[1][i]==map[2][i]&&map[0][i]!='s') res = map[0][i]; if ((map[0][0]==map[1][1]&&map[1][1]==map[2][2]&&map[0][0]!='s')|| (map[0][2]==map[1][1]&&map[1][1]==map[2][0]&&map[0][2]!='s')) res = map[1][1]; cout << res << endl; } }
0064
isdigitをisalnumと間違えてた上、数字で終わるコーナーケース対策をしてなかった・・・
それを除いたら簡単
#include <sstream> #include <cstdlib> #include <iostream> #include <string> #include <vector> using namespace std; int add(string s) { int num = 0; string tmp = ""; for (int i=0; i<s.length(); i++) { if (isdigit(s[i])) { tmp += s[i]; } else if (!tmp.empty()) { stringstream ss; ss.str(tmp); int t; ss >> t; num += t; tmp = ""; } } if (!tmp.empty()) { stringstream ss; ss.str(tmp); int t; ss >> t; num += t; } return num; } int main() { string s; int num=0; while (cin>>s) { num += add(s); } cout << num << endl; }
0063
stlゲー
#include <iostream> #include <algorithm> using namespace std; int main() { string str; int cnt = 0; while (cin>>str) { string rev = str; reverse(rev.begin(), rev.end()); if (str == rev) cnt++; } cout << cnt << endl; }
0062
入力を最初scanf("%s")でやってたらなぜかTLE。。。
こわいね。
#include <iostream> using namespace std; int main() { int top[10]; char temp; while (cin>>temp) { top[0] = temp - '0'; for (int i=1; i<10; i++) { cin>>temp; top[i] = temp - '0'; } for (int i=10; i>0; i--) { for (int j=0; j+1<i; j++) { top[j] = (top[j] + top[j+1]) % 10; } } cout<<top[0]<<endl; } }
PKUまじってた 1565
多分記念すべき64問目とやら
やるだけ。
#include <iostream> #include <cmath> using namespace std; int main() { string n; while (cin>>n && n!="0") { int x = n.length(); long long res = 0; for (int i = 0; i < x; i++) { res += (n[i] - '0') * (pow(2, x - i) - 1); } cout << res << endl; } }
感想
なんで毎回感想つけるのか自分でもあまりわかってないけど…
とりあえずcinとcoutはさけたほうがいいといわれ避けてきたのにここにきていきなりscanfと%sの組み合わせでTLEが起こるという非常事態が起こり、
まぁcinも時には使うべきなんだなとあらためて実感しました○