Submission #1150316

#TimeUsernameProblemLanguageResultExecution timeMemory
1150316yeysoAncient Machine (JOI21_ancient_machine)C++20
38 / 100
49 ms6848 KiB
#include "Anna.h"
#include <vector>
using namespace std;
#include <bits/stdc++.h>

namespace {
    int le(int z){
        if(z == 0) return 1;
        if(z == 1) return 0;
        if(z == 2) return 0;
    }
    int gr(int z){
        if(z == 0) return 2;
        if(z == 1) return 2;
        if(z == 2) return 1;
    }
}

void Anna(int N, vector<char> S) {
    vector<int> freq(3, 0);
    for(int i = 0; i < S.size(); i ++){
        freq[S[i] - 'X'] ++;
    }
    int max_freq = 0;
    for(int i = 0; i < 3; i ++){
        if(freq[i] > freq[max_freq]){
            max_freq = i;
        }
    }
    if(max_freq == 0){
        Send(0);
        Send(0);
    }
    if(max_freq == 1){
        Send(0);
        Send(1);
    }
    if(max_freq == 2){
        Send(1);
        Send(0);
    }
    for(int i = 0; i < S.size(); i ++){
        if(S[i] - 'X' == max_freq){
            Send(0);
        }
        if(S[i] - 'X' == le(max_freq)){
            Send(1); 
            Send(0);
        }
        if(S[i] -'X' == gr(max_freq)){
            Send(1);
            Send(1);
        }
    }
}
/*
g++ -std=gnu++17 -O2 -fsigned-char -o grader grader.cpp ancientmachine.cpp Bruno.cpp
*/
#include "Bruno.h"
#include <vector>
using namespace std; 
#include <bits/stdc++.h>

namespace {
    int le(int z){
        if(z == 0) return 1;
        if(z == 1) return 0;
        if(z == 2) return 0;
    }
    int gr(int z){
        if(z == 0) return 2;
        if(z == 1) return 2;
        if(z == 2) return 1;
    }
}  

void Bruno(int N, int L, vector<int> A) {
    int pos =-1;
    string s;
    int max_freq = A[0] * 2+ A[1];
    int i = 2;
    while(i < L){
        if(A[i] == 0){
            s.push_back('X' + max_freq);
        }
        if(A[i] == 1){
            if(A[i+1] == 0){
                s.push_back('X' + le(max_freq));
            } else {
                s.push_back('X' + gr(max_freq));
            }
            i ++;
        }
        i ++;
    }
    for(int i = 0;i<N;i++){
        if(s[i]=='X'){
            pos=i;
            break;
        } else {
            Remove(i); 
        }
    }
    if(pos == -1){
        return;
    }

    int cur = pos;
    int check = 0;
    int id = 0;
    for(int i = pos; i < N; i++){
        if(s[i]=='Z'){
            for(int j = i - 1; j > cur; j--){
                Remove(j); 
            }
            Remove(i);
            cur=i;
        }
    }
    for(int i = N-1; i > cur; i--){ 
        Remove(i); 
    }
    Remove(pos); 
}
/*
g++ -std=gnu++17 -O2 -fsigned-char -o grader grader.cpp ancientmachine.cpp Bruno.cpp
8
X Y X Z Y X Y Z

48
X X Y Y Z Z Y X Y X Z Y X X Y Y Z Z Y X Y X Z Y X X Y Y Z Z Y X Y X Z Y X X Y Y Z Z Y X Y X Z Y

3
X X X

3
Y Y Y

3
Z Z Z

3
X Y Z

15
Y X Z Z X Y X Z Y Z X Y X Y Z

20
X X Y Y Z Z X Y Z X Y Z X X Y Z X Y Z X

25
Z Y X X Y Z Z Y X X Z Y X Y Z X Z Y X X Y Z Y X Z

30
X Y Z X Y Z X X Y Z Z Y X X Z Y X Y Z X Y Z X X Y Z X Y Z Z

40
Z Z X X Y Y Z X Y Z X X Y Z X Y Z X X Y Z X Y Z Z Y X X Z Y X Y Z X Y Z X Y X X

50
X Y Z Z Y X X Z Y X Y Z X X Y Z X Y Z X Y Z Z Y X X Z Y X Y Z X Y Z X X Y Z X Y Z Z X Y X X Y Z Y Z

60
Y X Z Z X Y X Z Y Z X Y X Y Z X Y Z X X Y Z X Y Z Z Y X X Z Y X Y Z X Y Z X X Y Z X Y Z Z X Y X X Y Z X Y Z Z X Y Z Y X

75
X X Y Z X Y Z X X Y Z Z Y X X Z Y X Y Z X Y Z X X Y Z X Y Z Z Y X X Z Y X Y Z X Y Z X X Y Z X Y Z Z X Y X X Y Z X Y Z Z X Y Z Y X Z X Y Z X X Y Z Z Y X

45
Z Z Z X X X Y Y Y Z Z Z X X X Y Y Y Z Z Z X X X Y Y Y Z Z Z X X X Y Y Y


*/

Compilation message (stderr)

# 1번째 컴파일 단계

Anna.cpp: In function 'int {anonymous}::le(int)':
Anna.cpp:11:5: warning: control reaches end of non-void function [-Wreturn-type]
   11 |     }
      |     ^
Anna.cpp: In function 'int {anonymous}::gr(int)':
Anna.cpp:16:5: warning: control reaches end of non-void function [-Wreturn-type]
   16 |     }
      |     ^

# 2번째 컴파일 단계

Bruno.cpp: In function 'int {anonymous}::le(int)':
Bruno.cpp:11:5: warning: control reaches end of non-void function [-Wreturn-type]
   11 |     }
      |     ^
Bruno.cpp: In function 'int {anonymous}::gr(int)':
Bruno.cpp:16:5: warning: control reaches end of non-void function [-Wreturn-type]
   16 |     }
      |     ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...