답안 #1078517

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1078517 2024-08-27T19:01:46 Z oscar1f Broken Device (JOI17_broken_device) C++17
85 / 100
34 ms 3040 KB
#include<bits/stdc++.h>
#include "Annalib.h"
using namespace std;
using ll=long long;

static const ll TAILLE_MAX=150+5,NB_HASARD=(ll)(1000*1000*1000+9)*(ll)(1000*1000*1000+7);
static bool estCache[TAILLE_MAX];
static ll nbVal,numBloc,pos;
static vector<ll> ans,listeTrois;

static void envoi(vector<ll> v) {
    for (int i=0;i<nbVal;i++) {
        Set(i,v[i]);
    }
}

static void ajout() {
    if ((NB_HASARD/numBloc)%2==0) {
        ans.push_back((listeTrois.back()+1)/2);
        ans.push_back((listeTrois.back()+1)%2);
    }
    else {
        ans.push_back((3-listeTrois.back())/2);
        ans.push_back((3-listeTrois.back())%2);
    }
    numBloc++;
    listeTrois.pop_back();
    pos+=2;
}

static void passe() {
    ans.push_back(0);
    ans.push_back(0);
    pos+=2;
}

void Anna(int N,ll X,int K,int P[]) {
    nbVal=N;
    ll obj=X;
    ll nbCache=K;
    for (ll i=0;i<nbVal;i++) {
        estCache[i]=false;
    }
    for (ll i=0;i<nbCache;i++) {
        estCache[P[i]]=true;
    }
    listeTrois.clear();
    while (obj>0) {
        listeTrois.push_back(obj%3);
        obj/=3;
    }
    ans.clear();
    pos=0;
    numBloc=1;
    while (pos<nbVal) {
        if (!listeTrois.empty() and !estCache[pos] and !estCache[pos+1]) {
            ajout();
        }
        else if (!listeTrois.empty()) {
            if ((NB_HASARD/numBloc)%2==0) {
                if (!estCache[pos] and listeTrois.back()==1) {
                    ajout();
                }
                else if (!estCache[pos+1] and listeTrois.back()==0) {
                    ajout();
                }
                else {
                    passe();
                }
            }
            else {
                if (!estCache[pos] and listeTrois.back()==1) {
                    ajout();
                }
                else if (!estCache[pos+1] and listeTrois.back()==2) {
                    ajout();
                }
                else {
                    passe();
                }
            }
        }
        else {
            passe();
        }
    }
    envoi(ans);
    //cout<<endl;
}
#include<bits/stdc++.h>
#include "Brunolib.h"
using namespace std;
using ll=long long;

static const ll NB_HASARD=(ll)(1000*1000*1000+9)*(ll)(1000*1000*1000+7);

ll Bruno(int N,int A[]) {
    ll nbVal=N,rep=0,suiv,numBloc=1;
    vector<ll> recu;
    for (int i=0;i<nbVal;i+=2) {
        suiv=2*A[i]+A[i+1];
        if (suiv>0) {
            rep*=3;
            if ((NB_HASARD/numBloc)%2==0) {
                rep+=suiv-1;
            }
            else {
                rep+=3-suiv;
            }
            numBloc++;
        }
    }
    return rep;
}
# 결과 실행 시간 메모리 Grader output
1 Partially correct 20 ms 2396 KB Output is partially correct - L* = 37
2 Partially correct 20 ms 2840 KB Output is partially correct - L* = 37
3 Partially correct 25 ms 2768 KB Output is partially correct - L* = 37
4 Partially correct 20 ms 2424 KB Output is partially correct - L* = 37
5 Partially correct 20 ms 2404 KB Output is partially correct - L* = 37
6 Partially correct 20 ms 2396 KB Output is partially correct - L* = 37
7 Partially correct 20 ms 2396 KB Output is partially correct - L* = 37
8 Partially correct 27 ms 2792 KB Output is partially correct - L* = 37
9 Partially correct 20 ms 2368 KB Output is partially correct - L* = 37
10 Partially correct 24 ms 2476 KB Output is partially correct - L* = 37
11 Partially correct 23 ms 2396 KB Output is partially correct - L* = 37
12 Partially correct 20 ms 2480 KB Output is partially correct - L* = 37
13 Partially correct 22 ms 2396 KB Output is partially correct - L* = 37
14 Partially correct 20 ms 2752 KB Output is partially correct - L* = 37
15 Partially correct 26 ms 2396 KB Output is partially correct - L* = 38
16 Partially correct 20 ms 2392 KB Output is partially correct - L* = 37
17 Partially correct 26 ms 2400 KB Output is partially correct - L* = 37
18 Partially correct 20 ms 2396 KB Output is partially correct - L* = 37
19 Partially correct 20 ms 2416 KB Output is partially correct - L* = 37
20 Partially correct 20 ms 2392 KB Output is partially correct - L* = 37
21 Partially correct 20 ms 2392 KB Output is partially correct - L* = 37
22 Partially correct 20 ms 2396 KB Output is partially correct - L* = 37
23 Partially correct 20 ms 2448 KB Output is partially correct - L* = 37
24 Partially correct 20 ms 2476 KB Output is partially correct - L* = 38
25 Partially correct 22 ms 2372 KB Output is partially correct - L* = 37
26 Partially correct 22 ms 3040 KB Output is partially correct - L* = 37
27 Partially correct 22 ms 2648 KB Output is partially correct - L* = 37
28 Partially correct 20 ms 2404 KB Output is partially correct - L* = 37
29 Partially correct 20 ms 2444 KB Output is partially correct - L* = 37
30 Partially correct 20 ms 2392 KB Output is partially correct - L* = 37
31 Partially correct 20 ms 2764 KB Output is partially correct - L* = 38
32 Partially correct 34 ms 2440 KB Output is partially correct - L* = 37
33 Partially correct 20 ms 2396 KB Output is partially correct - L* = 37
34 Partially correct 30 ms 2308 KB Output is partially correct - L* = 37
35 Partially correct 22 ms 2612 KB Output is partially correct - L* = 37
36 Partially correct 24 ms 2396 KB Output is partially correct - L* = 37
37 Partially correct 30 ms 2476 KB Output is partially correct - L* = 37
38 Partially correct 22 ms 2388 KB Output is partially correct - L* = 37
39 Partially correct 20 ms 2396 KB Output is partially correct - L* = 37
40 Partially correct 34 ms 2400 KB Output is partially correct - L* = 37