답안 #272082

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
272082 2020-08-18T08:43:31 Z 최은수(#5096) 최후의 만찬 (IOI12_supper) C++14
0 / 100
2500 ms 1656 KB
#include"advisor.h"
#include<iostream>
#include<vector>
#include<set>
#include<algorithm>
#define ep emplace
#define eb emplace_back
#define fi first
#define se second
#define all(x) (x).begin(),(x).end()
using namespace std;
typedef long long ll;
typedef pair<int,int>pi;
typedef pair<ll,ll>pl;
const int inf=1e9+7;
const ll INF=1e18;
void ComputeAdvice(int*C,int N,int K,int M)
{
    set<pi,greater<pi> >st;
    vector<int>v(N,N);
    vector<int>nx=v;
    vector<bool>chk(N,0);
    for(int i=N;i-->0;)
        nx[i]=v[C[i]],v[C[i]]=i;
    for(int i=0;i<K;i++)
    {
        int cnt=0;
        for(int j=0;j<v[i];j++)
            if(!chk[C[j]])
                cnt++,chk[C[j]]=1;
        if(cnt<K)
            WriteAdvice(1);
        else
            WriteAdvice(0);
        for(int j=0;j<v[i];j++)
            chk[C[j]]=0;
    }
    for(int i=0;i<N;i++)
    {
        if(nx[i]==N)
            WriteAdvice(0);
        else
        {
            int cnt=0;
            for(int j=i+1;j<nx[i];j++)
                if(!chk[C[j]])
                    cnt++,chk[C[j]]=1;
            if(cnt<K)
                WriteAdvice(1);
            else
                WriteAdvice(0);
            for(int j=i+1;j<nx[i];j++)
                chk[C[j]]=0;
        }
    }
    return;
}
#include"assistant.h"
#include<iostream>
#include<vector>
#include<queue>
#include<set>
#include<algorithm>
#define ep emplace
#define eb emplace_back
#define fi first
#define se second
#define all(x) (x).begin(),(x).end()
using namespace std;
typedef long long ll;
typedef pair<int,int>pi;
typedef pair<ll,ll>pl;
const int inf=1e9+7;
const ll INF=1e18;
void Assist(unsigned char*A,int N,int K,int R)
{
    set<int>v1;
    queue<int>v2;
    for(int i=0;i<K;i++)
    {
        if(A[i]==1)
            v1.ep(i);
        else
            v2.ep(i);
    }
    for(int i=0;i<N;i++)
    {
        int c=GetRequest();
        auto it=v1.find(c);
        if(it==v1.end())
        {
            PutBack(v2.front());
            v2.pop();
        }
        else
            v1.erase(it);
        if(A[i+K]==1)
            v1.ep(c);
        else
            v2.ep(c);
    }
    return;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 772 KB Output is correct
2 Incorrect 2 ms 836 KB Output isn't correct - not an optimal way
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 190 ms 1092 KB Output isn't correct - not an optimal way
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2579 ms 1344 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 42 ms 932 KB Output isn't correct - not an optimal way
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2594 ms 1572 KB Time limit exceeded
2 Execution timed out 2542 ms 1568 KB Time limit exceeded
3 Execution timed out 2552 ms 1568 KB Time limit exceeded
4 Execution timed out 2554 ms 1656 KB Time limit exceeded
5 Execution timed out 2583 ms 1576 KB Time limit exceeded
6 Execution timed out 2585 ms 1572 KB Time limit exceeded
7 Execution timed out 2531 ms 1536 KB Time limit exceeded
8 Execution timed out 2566 ms 1568 KB Time limit exceeded
9 Execution timed out 2573 ms 1656 KB Time limit exceeded
10 Execution timed out 2576 ms 1564 KB Time limit exceeded