Atcoder#005
A - 大好き高橋君 ( Love me do )
■問題
n個の単語でできた文が与えられて、指定された文字列が入力の中に何個あるか数える。
■解法
単語が指定の文字列と同じか比較するだけ
やるだけ
'.'が最後についても良いことに注意する
■ソース
#include<cstdio> #include<cmath> #include<cstring> #include<iostream> #include<algorithm> #include<string> using namespace std; int main(void){ string s; int n,ans=0; cin >> n; for(int i=0;i<n;i++){ cin >> s; if(s == "TAKAHASHIKUN" ){ ans++; continue; } if(s == "Takahashikun" ){ ans++; continue; } if(s == "takahashikun" ){ ans++; continue; } if(s == "TAKAHASHIKUN." ){ ans++; continue; } if(s == "Takahashikun." ){ ans++; continue; } if(s == "takahashikun." ){ ans++; continue; } } cout << ans << endl; }
B - P-CASカードと高橋君 ( This story is a fiction )
■問題
9*9の数字が並べられてます。
ある場所からある方向に4つの値を取ってそれを出力します。
範囲外に行こうとしたら跳ね返ります。
■解法
4回入力の方に進ませて、範囲外になったら対処するだけ。
やるだけ
バグで死んで汚いので参考にしてはいけない。
■ソース
※閲覧注意
#include<cstdio> #include<cmath> #include<cstring> #include<iostream> #include<algorithm> #include<string> using namespace std; int dx[]={0,1,1,1,0,-1,-1,-1}; int dy[]={-1,-1,0,1,1,1,0,-1}; int main(void){ int x,y,ang; string w,s[10]; cin >> x >> y >> w; x--; y--; for(int i=0;i<9;i++){ cin >> s[i]; } if(w == "U"){ ang = 0; } else if(w == "RU"){ ang = 1; } else if(w == "R"){ ang = 2; } else if(w == "RD"){ ang = 3; } else if(w == "D"){ ang = 4; } else if(w == "LD"){ ang = 5; } else if(w == "L"){ ang = 6; } else if(w == "LU"){ ang = 7; } string ans; for(int i=0;i<4;i++){ ans += s[y][x]; cout << ang << endl; int nx=dx[ang]+x; int ny=dy[ang]+y; if(!(0 <= nx && nx < 9 && 0 <= ny && ny < 9)){ if(x == 0 && y == 0 && ang == 7) ang=3; else if(x == 8 && y == 0 && ang == 1) ang=5; else if(x == 0 && y == 8 && ang == 5) ang=1; else if(x == 8 && y == 8 && ang == 3) ang=7; else if(x==0 && ang == 7) ang=1; else if(x==0 && ang == 5) ang=3; else if(x==0 && ang == 6) ang=2; else if(x==8 && ang == 1) ang=7; else if(x==8 && ang == 3) ang=5; else if(x==8 && ang == 2) ang=6; else if(y==0 && ang == 1) ang=3; else if(y==0 && ang == 7) ang=5; else if(y==0 && ang == 0) ang=4; else if(y==8 && ang == 3) ang=1; else if(y==8 && ang == 5) ang=7; else if(y==8 && ang == 4) ang=0; } x+=dx[ang]; y+=dy[ang]; } cout << ans << endl; }