Codeforces Round #652 (Div. 2) AB

    技术2022-07-10  94

    A,求一个正多边形有两条边分别平行于X和Y B:注意到1…0这样的形式最后一定能变为一个0。那么因为要求字典序最小,所以贪心缩一下就行。

    #include<iostream> #include<cstdio> #include<cmath> using namespace std; const int maxn = 100000 + 5; int n, s[maxn]; int main() { int T; scanf("%d", &T); while(T --) { scanf("%d", &n); for(int i = 0; i < n; ++ i) scanf("", &s[i]); int l = 0, r = 0; for(int i = 0; i < n; ++ i) { if(s[i] == 1) break; ++ l; } for(int i = n - 1; i >= 0; -- i) { if(s[i] == 0) break; ++ r; } if(l + r == n) { for(int i = 0; i < l; ++ i) putchar('0'); for(int i = 0; i < r; ++ i) putchar('1'); } else { for(int i = 0; i < l; ++ i) putchar('0'); putchar('0'); for(int i = 0; i < r; ++ i) putchar('1'); } puts(""); } return 0; }
    Processed: 0.009, SQL: 9