YadexOpen
無理。あれ。
英文難しいか制約厳しいかどっちかだったし・・・
A
TLEした。
計算量減らせない(泣)
int main() { string str; cin >> str; string tmp=str; sort(str.begin(), str.end()); char s = str[0]; int c = 1; for (int i=1; i<str.length(); i++) { if (s==str[i]&&c%2==1) { str.erase(i-1,2); i-=2; c++; } else if (s==str[i]) { c++; } else if (s!=str[i]) { s=str[i]; c=1; } } string ans=""; for (int i=0; i<tmp.length(); i++) { for (int j=0; j<str.length(); j++) { if (tmp[i]==str[j]) { ans+=tmp[i]; str.erase(j,1); } } } cout << ans << endl; return 0; }
B
WA。
むり。
int main() { string str; getline(cin, str); int dot=0; for (int i=0; i<str.length(); i++) { if (str[i]==',') { str.insert(i+1, " "); } else if (str[i]==' '&&i-1>=0&&str[i-1]==' ') { str.erase(i, 1); } else if (dot!=3&&str[i]=='.') { dot++; } else if (dot==3&&str[i]=='.') { str.insert(i, " "); dot=0; } cout << str[i] << endl; } cout << str << endl; }
E
問題の意味はわかりやすい・・・けど解法が思いつかなかった。
結果
921位タイ