寒假训练第六天-Codeforces Round #481 (Div. 3)
前言:英语挂科了,就很突然,心情不好就不写题意和题解了,直接粘代码吧。
题目链接-https://codeforces.com/contest/978
A-Remove Duplicates
int a[55], ok[1010];
vector<int> v;
int32_t main()
{
ICO;
int n, x, num = 0;
cin >> n;
for(int i = 1; i <= n; i++)
{
cin >> a[i];
ok[a[i]] = i;
}
for(int i = 1; i <= n; i++)
if(ok[a[i]] == i) num ++;
for(int i = 1; i <= n; i++)
if(ok[a[i]] == i) cout << a[i] << ' ';
return 0;
}
B-File Name
string s;
int32_t main()
{
ICO;
int n, num = 0;
cin >> n >> s;
for(int i = 0; i < s.size() - 2; i++)
if(s[i] == 'x' && s[i + 1] == 'x' && s[i + 2] == 'x') num++;
cout << num << endl;
return 0;
}
C-Letters
ll a[maxn], s[maxn];
int32_t main()
{
ICO;
ll n, m, x;
cin >> n >> m;
for(int i = 1; i <= n; i++)
{
cin >> a[i];
s[i] = s[i - 1] + a[i];
}
while(m--)
{
cin >> x;
ll t = lower_bound(s + 1, s + 1 + n, x) - s;
ll p = x - s[t - 1];
cout << t << ' ' << p << endl;
}
return 0;
}
D- Almost Arithmetic Progression
const int maxn = 1e5 + 10;
ll a[maxn], m[maxn];
int32_t main()
{
ICO;
int n, d, num, k, t, res = inf_int;
cin >> n;
bool ok = 0;
for(int i = 1; i <= n; i++) cin >> m[i];
if(n <= 2){cout << 0 << endl; return 0;}
for(int i = m[1] - 1; i <= m[1] + 1; i++)
{
for(int j = m[2] - 1; j <= m[2] + 1; j++)
{
cpy(a, m);
d = j - i, num = 0, a[1] = i, a[2] = j;
if(a[1] != m[1]) num++;
if(a[2] != m[2]) num++;
for(k = 3; k <= n; k++)
{
t = a[k] - a[k - 1];
if(t == d) continue;
else if(t == d + 1) {a[k]--; num++;}
else if(t == d - 1) {a[k]++; num++;}
else break;
}
if(k == n + 1) {ok = 1; res = min(res, num);}
}
}
if(ok) cout << res << endl;
else cout << -1 << endl;
return 0;
}
E- Bus Video System
ll a[1010], sum;
int32_t main()
{
ICO;
int n, w;
cin >> n >> w;
ll minn = 0, maxn = w;
for(int i = 1; i <= n; i++) cin >> a[i];
for(int i = 1; i <= n; i++)
{
sum += a[i];
minn = max(minn, -sum), maxn = min(maxn, w - sum);
if(minn > w || maxn < 0 || minn > maxn) {cout << 0 << endl; return 0;}
}
cout << (maxn - minn + 1) << endl;
return 0;
}
F- Mentors
const int maxn = 2e5 + 10;
int a[maxn], b[maxn], res[maxn];
int32_t main()
{
ICO;
int n, k, p ,q;
cin >> n >> k;
for(int i = 1; i <= n; i++) {cin >> a[i]; b[i] = a[i];}
sort(b + 1, b + 1 + n);
for(int i = 1; i <= n; i++) res[i] = lower_bound(b + 1, b + 1 + n, a[i]) - b - 1;
while(k--)
{
cin >> p >> q;
if(a[p] < a[q]) res[q]--;
else if(a[q] < a[p]) res[p]--;
}
for(int i = 1; i <= n; i++)
cout << res[i] << ' ';
return 0;
}
总结:寒假训练这几天打的最好的一场了吧。本鼓起勇气走向令人恐惧的未来,却因为自己的无所适从,莫衷一是而迷茫在路口。我对未来的不确定性 感到害怕。