Submission #16884407


Source Code Expand

// {{{ Boilerplate Code <--------------------------------------------------
// vim:filetype=cpp:foldmethod=marker:foldmarker={{{,}}}

#include <algorithm>
#include <bitset>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <deque>
#include <functional>
#include <iomanip>
#include <iostream>
#include <list>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <utility>
#include <vector>

#define FOR(I,A,B) for(int I = (A); I < (B); ++I)
#define ALL(A)     (A).begin(), (A).end()

using namespace std;

// }}}

int main(){
        long long N,Q;
        cin>>N>>Q;

        int sqn=sqrt(N);

        long long rev=0;

        int len[2][200000];
        int lensq[2][1000];

        FOR(i,0,N){
                len[0][i]=N-2;
                len[1][i]=N-2;
        }

        FOR(i,0,N){
                lensq[0][i]=N-2;
                lensq[1][i]=N-2;
        }

        FOR(i,0,Q){
                int dir,x;
                cin>>dir>>x;
                --dir;

                int opdir=1-dir;
                int sqx=x/sqn;

                int now=min(len[dir][x],lensq[dir][sqx]);

                rev+=now;

                now+=2;
                FOR(j,0,now/sqn){
                        lensq[opdir][j]=min(lensq[opdir][j],x-2);
                }
                FOR(j,(now/sqn)*sqn,now){
                        len[opdir][j]=min(len[opdir][j],x-2);
                }

        }


        cout<<(N-2)*(N-2)-rev<<endl;
}

Submission Info

Submission Time
Task F - Simplified Reversi
User nhirokinet
Language C++ (GCC 9.2.1)
Score 600
Code Size 1598 Byte
Status AC
Exec Time 152 ms
Memory 5104 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 3
AC × 21
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All hand_01.txt, hand_02.txt, hand_03.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, sample_01.txt, sample_02.txt, sample_03.txt
Case Name Status Exec Time Memory
hand_01.txt AC 6 ms 3556 KiB
hand_02.txt AC 2 ms 3552 KiB
hand_03.txt AC 2 ms 3612 KiB
random_01.txt AC 124 ms 4988 KiB
random_02.txt AC 34 ms 4836 KiB
random_03.txt AC 152 ms 4988 KiB
random_04.txt AC 74 ms 4452 KiB
random_05.txt AC 139 ms 4984 KiB
random_06.txt AC 101 ms 4180 KiB
random_07.txt AC 131 ms 5104 KiB
random_08.txt AC 25 ms 4320 KiB
random_09.txt AC 133 ms 5056 KiB
random_10.txt AC 2 ms 3724 KiB
random_11.txt AC 87 ms 5104 KiB
random_12.txt AC 94 ms 4532 KiB
random_13.txt AC 119 ms 4244 KiB
random_14.txt AC 115 ms 4216 KiB
random_15.txt AC 113 ms 4336 KiB
sample_01.txt AC 3 ms 3492 KiB
sample_02.txt AC 8 ms 4972 KiB
sample_03.txt AC 5 ms 4872 KiB