# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1012461 | 2024-07-02T08:04:58 Z | Unforgettablepl | Ancient Machine (JOI21_ancient_machine) | C++17 | 37 ms | 9112 KB |
#include "Anna.h" #include <vector> #include <bits/stdc++.h> using namespace std; namespace { vector<int> fib(43); void genFib(){ fib[1] = 1; for(int i=2;i<43;i++)fib[i]=fib[i-1]+fib[i-2]; } void blockp(vector<int> block){ int ans = 0; for(int i=0;i<block.size();i++){ if(block[i])ans+=fib[block.size()-i+1]; } for(int bit=0;bit<28;bit++)Send(min(1,ans&(1<<bit))); } void process(vector<int> arr){ genFib(); for(int blocks=0;blocks<2500;blocks++){ vector<int> curr; for(int i=0;i<40;i++)curr.emplace_back(arr[blocks*40+i]); blockp(curr); } } } void Anna(int N, std::vector<char> S) { bool foundX = false; S.emplace_back('$'); vector<int> bits; for(int i=0;i<N;i++){ if(S[i]=='X'){ if(foundX)bits.emplace_back(0); else { foundX = true; bits.emplace_back(1); } } else if(S[i]=='Y'){ bits.emplace_back(0); } else if(S[i]=='Z'){ if(!foundX or S[i+1]=='Z')bits.emplace_back(0); else bits.emplace_back(1); } } while(bits.size()<100000)bits.emplace_back(0); process(bits); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 14 ms | 3992 KB | Output is correct |
2 | Incorrect | 12 ms | 3740 KB | Wrong Answer [6] |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 37 ms | 9112 KB | Wrong Answer [6] |
2 | Halted | 0 ms | 0 KB | - |