A-exam Construction
1#include <cstdio>2 3 intans[ the+5];4 5 intMain () {6 intN, cnt =1;7scanf"%d", &n);8 for(inti =1; I <= N; i++) {9 if(i&1) Ans[i] =CNT;Ten Else { OneAns[i] = n+1-CNT; Acnt++; - } - } theans[0] =Ans[n]; - if(n = =1|| n = =2) { -printf"1\n1\n"); - return 0; + } - if(n = =3) { +printf"2\n1 3\n"); A return 0; at } -printf"%d\n", n); - for(inti =0; I < n; i++) -printf"%d", Ans[i]); - return 0; -}View Code
B-covered Path Idea question
1#include <cstdio>2 3InlineintMinintAintb) {4 returnA < b?a:b;5 }6 7 intMain () {8 intv1, v2, T, D;9scanf"%d%d%d%d", &v1, &v2, &t, &d);Ten intAns =0; One for(inti =0; I < T; i++) AAns + = min (v1+i*d, v2+ (t-i-1)*d); -printf"%d\n", ans); - return 0; the}View Code
C-polycarpus ' Dice to seek the upper and lower bounds
1#include <cstdio>2 3 Const intN =100000*2+5;4typedefLong Longll;5 ll Ans[n], Num[n], suf[n], pre[n];6 7 intMain () {8 intN;9 ll S;Tenscanf"%d%lld", &n, &s); One for(inti =1; I <= N; i++) Ascanf"%lld", num+i); - for(inti =1; I <= N; i++) -Pre[i] = pre[i-1] +Num[i]; the for(inti = n; I >=1; i--) -Suf[i] = suf[i+1] +Num[i]; - ll Can_min, Can_max; - for(inti =1; I <= N; i++) { +Can_min = s-pre[i-1]-suf[i+1]; - if(Can_min <1) Can_min =1; +Can_max = S-n +1; A if(Can_max > Num[i]) Can_max =Num[i]; atAns[i] = num[i]-(can_max-can_min +1); - } - for(inti =1; I <= N; i++) -printf"%lld", Ans[i]); - return 0; -}View Code
Codeforces Round #298 (Div. 2)