Submission #50023

# Submission time Handle Problem Language Result Execution time Memory
50023 2018-06-06T12:30:20 Z hamzqq9 Koala Game (APIO17_koala) C++14
33 / 100
119 ms 1004 KB
#include "koala.h"
#include<bits/stdc++.h>
#define lf double
#define ll long long
#define cc pair<char,char>
#define ull unsigned ll
#define ii pair<int,int>
#define li pair<ll,int>
#define iii pair<ii,int>
#define iiii pair<ii,ii>
#define iiii2 pair<int,iii>
#define lii pair<ll,ii>
#define lolo pair<ll,ll>
#define heap priority_queue
#define mp make_pair
#define st first
#define nd second
#define pb push_back
#define pf push_front
#define ppb pop_back
#define ppf pop_front
#define all(x) x.begin(),x.end()
#define len(x) strlen(x)
#define sz(x) (int) x.size()
#define orta ((bas+son)/2)
#define min3(x,y,z) min(min(x,y),z)
#define max3(x,y,z) max(max(x,y),z)
#define umin(x,y) x=min(x,y)
#define umax(x,y) x=max(x,y)
#define dbgs(x) cerr<<(#x)<<" --> "<<(x)<<" "
#define dbg(x) cerr<<(#x)<<" --> "<<(x)<<endl;getchar()
#define MOD 1000000007
#define inf 4000000000000000000ll
#define M 10000002
#define LOG 20
#define magic 100
#define KOK 350
#define EPS 0.0025
#define pw(x) ((1ll)<<(x))
#define PI 3.1415926535
using namespace std;

int N,W;
int i1,i2=1;

int minValue(int N, int W) {
    // TODO: Implement Subtask 1 solution here.
    // You may leave this function unmodified if you are not attempting this
    // subtask.

    int R[105];
    int B[105]={0};

    B[0]=1;

    playRound(B,R);

    if(R[0]==1 || R[0]==0) {

        return 0;

    }
    else {

        for(int i=1;i<N;i++) if(!R[i]) return i;

    }

}

int maxValue(int N, int W) {
    // TODO: Implement Subtask 2 solution here.
    // You may leave this function unmodified if you are not attempting this
    // subtask.

    vector<int> v11,v12,v21,v22,v23,v24,v31,v32,v33,v34,v35,v36;

    int B[105]={0};

    int R[105];

    for(int i=0;i<N;i++) B[i]=1;

    playRound(B,R);

    for(int i=0;i<N;i++) {

        if(R[i]>=2) v12.pb(i);
        else v11.pb(i);

    }

    for(int i:v12) B[i]=2;

    for(int i:v11) B[i]=0;

    playRound(B,R);

    for(int i:v12) {

        if(R[i]>=3) {

            v24.pb(i);

        }
        else {

            v23.pb(i);

        }

    }

    for(int i:v11) {

        if(R[i]>=1) {

            v22.pb(i);

        }
        else {

            v21.pb(i);

        }

    }

    memset(B,0,sizeof(B));

    for(int i:v23) B[i]=1;
    for(int i:v24) B[i]=3;

    playRound(B,R);

    for(int i:v24) {

        if(R[i]>=4) v36.pb(i);
        else v35.pb(i);

    }

    for(int i:v23) {

        v34.pb(i);

    }

    for(int i:v22) v33.pb(i);

    for(int i:v21) {

        if(R[i]>=1) v32.pb(i);
        else v31.pb(i);

    }

    memset(B,0,sizeof(B));

    for(int i:v36) B[i]=10;

    playRound(B,R);

    for(int i=0;i<N;i++) if(R[i]>=11) return i;

}

int greaterValue(int N, int W) {
    // TODO: Implement Subtask 3 solution here.
    // You may leave this function unmodified if you are not attempting this
    // subtask.

    int B[105]={0};
    int R[105];

    int bas=1,son=8;

    while(bas<=son) {

        memset(B,0,sizeof(B));

        B[i1]=B[i2]=orta;

        playRound(B,R);

        int s1=(R[i1]>orta);
        int s2=(R[i2]>orta);

        if(s1&s2) {

            bas=orta+1;

        }
        else if(!(s1^s2)) {

            son=orta-1;

        }
        else {

            if(s1) return 0;
            return 1;

        }

    }

    assert(0);

}

int doit(int x,int y) {i1=x;i2=y;return greaterValue(N,W);}

void solve(vector<int> &now) {

    vector<int> l,r;

    if(sz(now)<=1) return 
;
    for(int i=0;i<sz(now)/2;i++) l.pb(now[i]);

    for(int i=sz(now)/2+1;i<sz(now);i++) r.pb(now[i]);

    solve(l);
    
    solve(r);

    int b1=0,b2=0;

    now.clear();

    while(b1<sz(l) || b2<sz(r)) {

        if(b1<sz(l) && (b2==sz(r) || (doit(l[b1],r[b2])))) {

            now.pb(l[b1++]);

        }
        else {

            now.pb(r[b2++]);

        }
 
    }

}

void allValues(int N, int W, int *P) {
    if (W == 2*N) {
        // TODO: Implement Subtask 4 solution here.
        // You may leave this block unmodified if you are not attempting this
        // subtask.
    } else {
        // TODO: Implement Subtask 5 solution here.
        // You may leave this block unmodified if you are not attempting this
        // subtask.

        vector<int> all;

        for(int i=1;i<=N;i++) all.pb(i);

            ::N=N;
        ::W=W;

        solve(all);

        for(int i=0;i<N;i++) P[all[i]]=i+1;

    }
}

Compilation message

koala.cpp: In function 'int minValue(int, int)':
koala.cpp:69:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
koala.cpp: In function 'int maxValue(int, int)':
koala.cpp:166:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
# Verdict Execution time Memory Grader output
1 Correct 7 ms 376 KB Output is correct
2 Correct 8 ms 444 KB Output is correct
3 Correct 11 ms 444 KB Output is correct
4 Correct 9 ms 444 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 20 ms 604 KB Output is correct
2 Correct 22 ms 604 KB Output is correct
3 Correct 21 ms 604 KB Output is correct
4 Correct 20 ms 620 KB Output is correct
# Verdict Execution time Memory Grader output
1 Partially correct 103 ms 1004 KB Output is partially correct
2 Partially correct 114 ms 1004 KB Output is partially correct
3 Partially correct 119 ms 1004 KB Output is partially correct
4 Partially correct 78 ms 1004 KB Output is partially correct
5 Partially correct 115 ms 1004 KB Output is partially correct
6 Partially correct 115 ms 1004 KB Output is partially correct
7 Partially correct 94 ms 1004 KB Output is partially correct
8 Partially correct 99 ms 1004 KB Output is partially correct
9 Partially correct 97 ms 1004 KB Output is partially correct
10 Partially correct 89 ms 1004 KB Output is partially correct
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 1004 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 10 ms 1004 KB Output isn't correct
2 Halted 0 ms 0 KB -