Submission #1053281


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

int ans[500010] = { 2, 2, 1, 2, 1, 2, 1, 1, 2, 3, 1, 1 };
int nt[100];

int main() {
    int t;
    cin >> t;
    if (t) {
        int n = 300000, p = 12;
        while (p < n) ans[p++] = 1;
        printf("%d\n%d", n, *ans);
        for (int i = 1; i < n; ++i) printf(" %d", ans[i]);
        printf("\n");
    }
    else {
        int n = 500000, ind = 0, aa = 99;
        ans[ind++] = 100;
        ans[ind++] = 100;
        for (int i = 0; i < 99; ++i) {
            int f = (ind + 3) % 4, h = (ind + 1) % 3;
            if (h == 2) {
                if (!f) {
                    if (aa * 2 - 1 > 100)
                        ans[ind++] = aa * 2 - 1;
                    else
                        ans[ind++] = aa--;
                }
                else if (f == 3) {
                    if (ans[ind - 3] - 1 > 100) {
                        ans[ind] = ans[ind - 3] - 1;
                        ++ind;
                    }
                    else
                        ans[ind++] = aa--;
                }
                else
                    ans[ind++] = aa--;
            }
            else if (h == 1) {
                nt[aa] = 1;
                ans[ind++] = aa--;
            }
            else
                ans[ind++] = aa--;
        }
        int a = 99;
        while (ind < 299) {
            int f = (ind + 3) % 4;
            int h = (ind + 1) % 3;
            if (h == 1) {
                while (nt[a]) --a;
                ans[ind] = a--;
            }
            else
                ans[ind] = 100;
            ++ind;
        }
        while (ind < 401) {
            int f = (ind + 3) % 4;
            if (f == 3) {
                ans[ind] = ans[ind - 3];
                ++ind;
            }
            else
                ans[ind++] = f ? 100 : 200;
        }
        while (ind < n) ans[ind++] = 1000000000;
        for (int i = 103; i < 299; i += 3) {
            int f = (i + 3) % 4;
            if (!f)
                ans[i] = ans[i + 1] + ans[i + 2];
            if (f == 3)
                ans[i] = ans[i - 3];
        }
        printf("%d\n%d", n, *ans);
        for (int i = 1; i < n; ++i) printf(" %d", ans[i]);
        printf("\n");
    }
    return 0;
}

Submission Info

Submission Time
Task J - Just a Single Testcase
User riantkb
Language C++14 (GCC 5.4.1)
Score 50
Code Size 2337 Byte
Status WA
Exec Time 27 ms
Memory 2048 KB

Judge Result

Set Name dataset1 dataset2
Score / Max Score 50 / 50 0 / 50
Status
AC × 1
WA × 1
Set Name Test Cases
dataset1 1.txt
dataset2 2.txt
Case Name Status Exec Time Memory
1.txt AC 27 ms 2048 KB
2.txt WA 27 ms 2048 KB