Submission #5991291


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MOD=1e9+7;
const int INF=1e9;

int t[400000],m;

void init(int n){
    m=1;
    while(m<n)m*=2;
    for(int i=0;i<2*m-1;i++)t[i]=-1;
}

void update(int k,int a){
    k+=m-1;
    t[k]=a;
    while(k>0){
        k=(k-1)/2;
        t[k]=min(t[2*k+1],t[2*k+2]);
    }
}

int query(int a,int b,int k,int l,int r){
    if(b<=l||r<=a)return INF;
    if(a<=l&&r<=b)return t[k];
    return min(query(a,b,2*k+1,l,(l+r)/2),query(a,b,2*k+2,(l+r)/2,r));
}

int main(){
    int n;
    cin>>n;
    int c[n],a[n];
    c[0]=a[0]=0;
    for(int i=1;i<n;i++){
        cin>>c[i]>>a[i];
    }
    init(n);
    int grundy[n];
    for(int i=0;i<n;i++){
        if(t[m-1]<i-c[i]){
            grundy[i]=0;
        }
        else{
            int ok=0,ng=n;
            while(abs(ok-ng)>1){
                int mid=(ok+ng)/2;
                if(i-c[i]<=query(0,mid+1,0,0,m)){
                    ok=mid;
                }else{
                    ng=mid;
                }
            }
            grundy[i]=ng;
        }
        update(grundy[i],i);
    }
    int ans=0;
    for(int i=1;i<n;i++){
        if(a[i]&1){
            ans^=grundy[i];
        }
    }
    if(ans){
        cout<<"First"<<endl;
    }else{
        cout<<"Second"<<endl;
    }
}

Submission Info

Submission Time
Task C - 茶碗と豆
User koikuchi
Language C++14 (GCC 5.4.1)
Score 104
Code Size 1375 Byte
Status AC
Exec Time 306 ms
Memory 2432 KB

Judge Result

Set Name Sample Dataset1 Dataset2 Dataset3
Score / Max Score 0 / 0 80 / 80 20 / 20 4 / 4
Status
AC × 3
AC × 13
AC × 21
AC × 29
Set Name Test Cases
Sample sample-01.txt, sample-02.txt, sample-03.txt
Dataset1 sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt
Dataset2 sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt
Dataset3 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 03-01.txt, 03-02.txt, 03-03.txt, 03-04.txt, 03-05.txt, 03-06.txt, 03-07.txt, 03-08.txt, sample-01.txt, sample-02.txt, sample-03.txt
Case Name Status Exec Time Memory
01-01.txt AC 1 ms 256 KB
01-02.txt AC 1 ms 256 KB
01-03.txt AC 1 ms 256 KB
01-04.txt AC 1 ms 256 KB
01-05.txt AC 1 ms 256 KB
01-06.txt AC 1 ms 256 KB
01-07.txt AC 1 ms 256 KB
01-08.txt AC 1 ms 256 KB
01-09.txt AC 1 ms 256 KB
01-10.txt AC 1 ms 256 KB
02-01.txt AC 1 ms 256 KB
02-02.txt AC 1 ms 256 KB
02-03.txt AC 1 ms 256 KB
02-04.txt AC 1 ms 256 KB
02-05.txt AC 1 ms 256 KB
02-06.txt AC 1 ms 256 KB
02-07.txt AC 1 ms 256 KB
02-08.txt AC 1 ms 256 KB
03-01.txt AC 296 ms 2432 KB
03-02.txt AC 306 ms 2432 KB
03-03.txt AC 296 ms 2432 KB
03-04.txt AC 306 ms 2432 KB
03-05.txt AC 302 ms 2432 KB
03-06.txt AC 302 ms 2432 KB
03-07.txt AC 139 ms 2432 KB
03-08.txt AC 139 ms 2432 KB
sample-01.txt AC 1 ms 256 KB
sample-02.txt AC 1 ms 256 KB
sample-03.txt AC 1 ms 256 KB