Submission #260406

# Submission time Handle Problem Language Result Execution time Memory
260406 2020-08-10T08:28:52 Z 최은수(#5043) Broken Device (JOI17_broken_device) C++14
100 / 100
60 ms 3328 KB
#include"Annalib.h"
#include<iostream>
#include<vector>
#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;
inline void set(int i,int x,int y,int z)
{
    Set(i,x);
    Set(i+1,y);
    Set(i+2,z);
    return;
}
static bool chk[150];
void Anna(int N,ll X,int K,int P[])
{
    for(int i=0;i<N;i++)
        chk[i]=0;
    for(int i=0;i<K;i++)
        chk[P[i]]=1;
    vector<int>dat;
    for(int i=0;i<60;i++)
        dat.eb(X>>i&1);
    for(int i=0;i<90;i++)
        dat.eb(0);
    for(int i=0,c=0;i<150;i+=3)
    {
        int cbit=dat[c++];
        int col=(chk[i]?4:0)+(chk[i+1]?2:0)+(chk[i+2]?1:0);
        if(col>=3&&col!=4)
            set(i,0,0,0),c--;
        else if(col==0)
        {
            int cbit2=dat[c++];
            if(cbit==1)
            {
                if(cbit2==1)
                    set(i,1,0,1);
                else
                    set(i,1,0,0);
            }
            else if(cbit2==1)
                set(i,1,1,0);
            else
                set(i,1,1,1);
        }
        else if(col==1)
        {
            int cbit2=dat[c];
            if(cbit==cbit2)
                set(i,0,1,0);
            else if(cbit==1)
                set(i,1,0,0),c++;
            else
                set(i,1,1,0),c++;
        }
        else if(col==2)
        {
            int cbit2=dat[c];
            if(cbit==0)
                set(i,0,0,1);
            else if(cbit2==1)
                set(i,1,0,1),c++;
            else
                set(i,1,0,0),c++;
        }
        else if(cbit==1)
            set(i,0,1,1);
        else
            set(i,0,0,1);
    }
    return;
}
#include"Brunolib.h"
#include<iostream>
#include<vector>
#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;

ll Bruno(int N,int A[])
{
    vector<int>dat(150,0);
    for(int i=0,c=0;i<150;i+=3)
    {
        int col=A[i]*4+A[i+1]*2+A[i+2];
        if(col==1)
            dat[c++]=0;
        else if(col==2)
            dat[c++]=-1;
        else if(col==3)
            dat[c++]=1;
        else if(col==4)
            dat[c++]=1,dat[c++]=0;
        else if(col==5)
            dat[c++]=1,dat[c++]=1;
        else if(col==6)
            dat[c++]=0,dat[c++]=1;
        else if(col==7)
            dat[c++]=0,dat[c++]=0;
    }
    for(int i=149;i-->0;)
        if(dat[i]==-1)
            dat[i]=dat[i+1];
    ll x=0;
    for(int i=0;i<60;i++)
        x|=(ll)dat[i]<<i;
    return x;
}
# Verdict Execution time Memory Grader output
1 Correct 48 ms 3056 KB Output is correct - L* = 40
2 Correct 44 ms 3072 KB Output is correct - L* = 40
3 Correct 43 ms 3072 KB Output is correct - L* = 40
4 Correct 43 ms 3072 KB Output is correct - L* = 40
5 Correct 43 ms 3056 KB Output is correct - L* = 40
6 Correct 46 ms 3056 KB Output is correct - L* = 40
7 Correct 43 ms 3064 KB Output is correct - L* = 40
8 Correct 46 ms 3056 KB Output is correct - L* = 40
9 Correct 43 ms 3072 KB Output is correct - L* = 40
10 Correct 48 ms 3328 KB Output is correct - L* = 40
11 Correct 43 ms 3056 KB Output is correct - L* = 40
12 Correct 43 ms 3056 KB Output is correct - L* = 40
13 Correct 43 ms 3056 KB Output is correct - L* = 40
14 Correct 58 ms 3072 KB Output is correct - L* = 40
15 Correct 55 ms 3056 KB Output is correct - L* = 40
16 Correct 53 ms 3056 KB Output is correct - L* = 40
17 Correct 47 ms 3072 KB Output is correct - L* = 40
18 Correct 46 ms 3072 KB Output is correct - L* = 40
19 Correct 47 ms 3056 KB Output is correct - L* = 40
20 Correct 45 ms 3072 KB Output is correct - L* = 40
21 Correct 50 ms 3072 KB Output is correct - L* = 40
22 Correct 46 ms 3056 KB Output is correct - L* = 40
23 Correct 44 ms 3072 KB Output is correct - L* = 40
24 Correct 43 ms 3056 KB Output is correct - L* = 40
25 Correct 46 ms 3072 KB Output is correct - L* = 40
26 Correct 43 ms 3072 KB Output is correct - L* = 40
27 Correct 48 ms 3064 KB Output is correct - L* = 40
28 Correct 43 ms 3056 KB Output is correct - L* = 40
29 Correct 49 ms 2992 KB Output is correct - L* = 40
30 Correct 43 ms 3072 KB Output is correct - L* = 40
31 Correct 54 ms 3056 KB Output is correct - L* = 40
32 Correct 55 ms 3056 KB Output is correct - L* = 40
33 Correct 47 ms 3056 KB Output is correct - L* = 40
34 Correct 47 ms 3072 KB Output is correct - L* = 40
35 Correct 60 ms 3056 KB Output is correct - L* = 40
36 Correct 44 ms 3056 KB Output is correct - L* = 40
37 Correct 48 ms 3072 KB Output is correct - L* = 40
38 Correct 48 ms 3056 KB Output is correct - L* = 40
39 Correct 47 ms 3056 KB Output is correct - L* = 40
40 Correct 45 ms 3056 KB Output is correct - L* = 40