Codeforces Beta Round #65 (Div. 2)
Rating: 1400(緑) → 1558(青)
2714 Points
A - Way Too Long Words
492 Points
#include <iostream> #include <string> using namespace std; int main() { int n; cin>>n; for(int i = 0; i < n; i++){ string s; cin>>s; if(s.size() > 10){ cout<<s[0]<<(s.size() - 2)<<s[s.size() - 1]<<endl; }else{ cout<<s<<endl; } } return 0; }
B - Progress Bar
944 Points
#include <cstdio> #include <vector> using namespace std; int main() { int n, k, t; scanf("%d %d %d\n", &n, &k, &t); int sat = n * k * t / 100; vector<int> v(n); for(int i = 0; i < n; i++){ if(sat >= k){ v[i] = k; }else if(sat < k && 0 < sat){ v[i] = sat; }else if(sat <= 0){ v[i] = 0; } sat -= k; } for(int i = 0; i < v.size(); i++){ printf("%d%c", v[i], i != v.size() - 1 ? ' ' : '\n'); } return 0; }
C - Round Table Knights
1278 Points
#include <cstdio> #include <vector> using namespace std; int main() { int n; scanf("%d\n", &n); vector<int> v(n); for(int i = 0; i < n; i++) scanf("%d", &v[i]); bool res = false; for(int i = 1; i <= n / 2; i++){ if(n % i) continue; if(n / i < 3) continue; for(int j = 0; j < i; j++){ int t = 1; for(int k = j; k < n; k += i){ if(!v[k]){ t = 0; break; } } if(t) res = true; if(res) break; } if(res) break; } puts(res ? "YES" : "NO"); return 0; }
D
E
分からず。