Submission #236683

# Submission time Handle Problem Language Result Execution time Memory
236683 2020-06-02T19:57:12 Z oscarsierra12 Last supper (IOI12_supper) C++14
0 / 100
111 ms 17712 KB
#include <bits/stdc++.h>
#include "advisor.h"

using namespace std;

vector <int> co[100010] ;
int nxt[200010];
int used[200010] ;
int toen[200010] ;

void ComputeAdvice(int *C, int N, int K, int M) {
    vector <int> cur ;
    for ( int i = 0 ; i < K ; ++i ) cur.push_back ( i ) ;
    for ( int i = 0 ; i < N ; ++i ) cur.push_back ( C[i] ) ;
    for ( int i = 0 ; i < K + N ; ++i )
        co[cur[i]].push_back ( i ) ;
    for ( int i = 0 ; i < N ; ++i ) {
        co[i].push_back ( N+K ) ;
        for ( int j = 0 ; j + 1 < co[i].size() ; ++j ) nxt[co[i][j]] = co[i][j+1] ;
    }
    priority_queue<pair<int,int> > pq ;
    for ( int i = 0 ; i < K ; ++i ) pq.push ( make_pair(nxt[i],i) ), used[i] = 1 ;
    for ( int i = K ; i < N+K ; ++i ) {
        if ( used[cur[i]] ) continue ;
        pair<int,int> lst = make_pair(0,0) ;
        while ( lst.first < i ) {
            lst = pq.top() ;
            pq.pop() ;
            if ( nxt[lst.first] ) pq.push ( make_pair(nxt[lst.first],lst.first) ) ;
        }
        if ( nxt[i] ) pq.push ( make_pair(nxt[i], i) ) ;
        toen[lst.second] = 1 ;
        used[cur[i]] = 1 ;
        used[cur[lst.first]] = 0;
    }
    for ( int i = 0 ; i < N+K ; ++i ) WriteAdvice ( toen[i]  ) ;
}
#include "assistant.h"
#include <bits/stdc++.h>

using namespace std ;

int used[200010] ;
queue <int> co ;

void Assist(unsigned char *A, int N, int K, int R) {
    for ( int i = 0 ; i < K ; ++i ) {
        used[i] = 1 ;
        if (A[i] == 1 ) co.push ( i ) ;
    }
    for ( int i = K ; i < K+N ; ++i ) {
        int add = GetRequest() ;
        if ( A[i] == 1 ) co.push ( add ) ;
        if ( used[add] ) continue ;
        assert ( used[co.front()] ) ;
        PutBack ( co.front() ) ;
        used[co.front()] = 0 ;
        co.pop() ;
        used[add] = 1 ;
    }
}

Compilation message

advisor.cpp: In function 'void ComputeAdvice(int*, int, int, int)':
advisor.cpp:19:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for ( int j = 0 ; j + 1 < co[i].size() ; ++j ) nxt[co[i][j]] = co[i][j+1] ;
                           ~~~~~~^~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 10 ms 5376 KB Output is correct
2 Runtime error 11 ms 5376 KB Execution killed with signal 11 (could be triggered by violating memory limits)
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 18 ms 6912 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 84 ms 15440 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 16 ms 5888 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 105 ms 17376 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Runtime error 100 ms 17496 KB Execution killed with signal 11 (could be triggered by violating memory limits)
3 Runtime error 105 ms 17600 KB Execution killed with signal 11 (could be triggered by violating memory limits)
4 Runtime error 102 ms 17440 KB Execution killed with signal 11 (could be triggered by violating memory limits)
5 Runtime error 101 ms 17432 KB Execution killed with signal 11 (could be triggered by violating memory limits)
6 Runtime error 111 ms 17712 KB Execution killed with signal 11 (could be triggered by violating memory limits)
7 Runtime error 102 ms 17632 KB Execution killed with signal 11 (could be triggered by violating memory limits)
8 Runtime error 108 ms 17440 KB Execution killed with signal 11 (could be triggered by violating memory limits)
9 Runtime error 105 ms 17440 KB Execution killed with signal 11 (could be triggered by violating memory limits)
10 Runtime error 100 ms 17512 KB Execution killed with signal 11 (could be triggered by violating memory limits)