ARC3完、TopCoder1完(1096->1105)
まわりがどんどんDiv.1いっててあせる・・・
ARC6 A
#include <cstdio> int e[6], b, l[6]; int main() { for (int i=0; i<6; i++) { scanf("%d",&e[i]); } scanf("%d",&b); for (int i=0; i<6; i++) { scanf("%d",&l[i]); } int cnt=0, j=0; for (int i=0; i<6; i++) { for (; j<6; j++) { if (e[i]==l[j]) { cnt++; break; } else if (e[i]<l[j]) { break; } } } if (cnt==6) { puts("1"); } else if (cnt==5) { bool flag=false; for (int i=0; i<6; i++) if (l[i]==b) flag=true; if (flag) puts("2"); else puts("3"); } else if (cnt==4) { puts("4"); } else if (cnt==3) { puts("5"); } else { puts("0"); } }
ARC6 B
こういう入力めんどい
#include <cstdio> #include <iostream> using namespace std; int n, l, g; string amida[20], goal; int main() { scanf("%d%d",&n,&l); getline(cin,goal); for (int i=0; i<l; i++) { getline(cin, amida[i]); } getline(cin, goal); for (int i=0; i<2*n-1; i++) if (goal[i]=='o') g=i; for (int i=l-1; i>=0; i--) { if (g>=2&&amida[i][g-1]=='-') g-=2; else if (g<=2*n-3&&amida[i][g+1]=='-') g+=2; } printf("%d\n",g/2+1); }
ARC6 C
あんまにぶたん使う必要もなかったという
#include <cstdio> #include <vector> #include <algorithm> using namespace std; int n, w[50]; vector<int> vc; int main() { scanf("%d",&n); for (int i=0; i<n; i++) scanf("%d",&w[i]); for (int i=0; i<n; i++) { sort(vc.begin(), vc.end()); int pos=lower_bound(vc.begin(), vc.end(), w[i])-vc.begin(); if (pos==vc.size()) vc.push_back(w[i]); else { vc[pos]=w[i]; } } printf("%d\n",vc.size()); }
EasyConversionMachine
これは簡単なんだけどさ…
class EasyConversionMachine { public: string isItPossible( string originalWord, string finalWord, int k ) { int cnt=0, len=originalWord.length(); for (int i=0; i<len; i++) { if (originalWord[i]!=finalWord[i]) cnt++; } if (cnt<=k&&(k-cnt)%2==0) return "POSSIBLE"; else return "IMPOSSIBLE"; } };
Medは…
注意力&英語力でうまくシュミレートしたら解けるとか色々とあれ
2完したら50位以内とかやばすぎ、というか2完少なすぎ