답안 #677088

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
677088 2023-01-02T08:51:25 Z alvingogo Ancient Machine (JOI21_ancient_machine) C++17
컴파일 오류
0 ms 0 KB
#include <bits/stdc++.h>
#include "Anna.h"
#pragma GCC optimize("Ofast")
#define AquA cin.tie(0);ios_base::sync_with_stdio(0);
#define fs first
#define sc second
#define p_q priority_queue
#define int long long
using namespace std;

vector<int> v;
const int A=51,B=73;
void init(){
	v.clear();
	v.push_back(1);
	v.push_back(1);
	int x=1;
	for(int i=0;i<74;i++){
		int u=v[i]+v[i+1];
		if(u>1e18){
			break;
		}
		v.push_back(u);
	}
}
void sei(int a){
	for(int i=A-1;i>=0;i--){
		if(a>=(1ll<<i)){
			a-=(1ll<<i);
			Send(1);
		}
		else{
			Send(0);
		}
	}
}
void Anna(int n,vector<char> s){
	init();
	string a;
	int flag=0;
	for(int i=0;i<n;i++){
		if(s[i]=='X'){
			if(flag==0){
				flag=1;
				a+='1';
				a+='0';
			}
			else{
				a+='0';
			}
		}
		else if(s[i]=='Y'){
			a+='0';
		}
		else{
			if(flag){
				a+='1';
			}
			else{
				a+='0';
			}
		}
	}
	int g=a.size();
	while(g%B!=0){
		g++;
		a+='0';
	}
	for(int i=0;i<g/B;i++){
		int x=0;
		for(int j=0;j<B;j++){
			if(a[i*B+j]=='1'){
				x+=v[B-j];
			}
		}
		assert(x<=(1ll<<A));
		sei(x);
	}
}
#include <bits/stdc++.h>
#include "Bruno.h"
#pragma GCC optimize("Ofast")
#define AquA cin.tie(0);ios_base::sync_with_stdio(0);
#define fs first
#define sc second
#define p_q priority_queue
#define int long long
using namespace std;

vector<int> v;
const int A=51,B=73;
void init2(){
	v.clear();
	v.push_back(1);
	v.push_back(1);
	int x=1;
	for(int i=0;i<74;i++){
		int u=v[i]+v[i+1];
		if(u>1e18){
			break;
		}
		v.push_back(u);
	}
}

void Bruno(int n,int l,vector<int> a){
    init2();
    string s;
    for(int i=0;i<l/A;i++){
        int zz=1ll<<(A-1);
        int x=0;
        for(int j=0;j<A;j++){
            if(a[i*A+j]=='1'){
                x+=zz;
            }
            zz>>=1;
        }
        for(int j=B;j>=1;j--){
            if(zz>=v[j]){
                zz-=v[j];
                s+='1';
            }
            else{
                s+='0';
            }
        }
    }
    int m=0;
    int flag=0;
    vector<int> gg(n);
    for(int i=0;i<n;i++){
        if(s[i+m]=='1'){
            gg[i]=1;
            flag=1;
            m=1;
        }
        else{
            gg[i]=0;
        }
    }
    vector<int> vis(n);
    flag=0;
    int lf=0;
    for(int i=0;i<n;i++){
        if(gg[i]==1){
            if(flag){
                for(int j=i-1;j>lf;j--){
                    Remove(j);
                    vis[j]=1;
                }
                Remove(i);
                vis[i]=1;
            }
            flag=1;
            lf=i;
        }
    }
    for(int i=0;i<n;i++){
        if(!vis[i]){
            Remove(i);
        }
    }
}

Compilation message

Anna.cpp: In function 'void init()':
Anna.cpp:17:6: warning: unused variable 'x' [-Wunused-variable]
   17 |  int x=1;
      |      ^
/usr/bin/ld: /tmp/cc5CY6pR.o: in function `main':
grader_anna.cpp:(.text.startup+0x14c): undefined reference to `Anna(int, std::vector<char, std::allocator<char> >)'
collect2: error: ld returned 1 exit status

Bruno.cpp: In function 'void init2()':
Bruno.cpp:17:6: warning: unused variable 'x' [-Wunused-variable]
   17 |  int x=1;
      |      ^
/usr/bin/ld: /tmp/cccsrHgB.o: in function `main':
grader_bruno.cpp:(.text.startup+0x24d): undefined reference to `Bruno(int, int, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status