Submission #23366581


Source Code Expand

// #pragma GCC target("avx")  // CPU 処理並列化
// #pragma GCC optimize("O3")  // CPU 処理並列化
// #pragma GCC optimize("unroll-loops")  // 条件処理の呼び出しを減らす
// #define BEGIN_STACK_EXTEND(size) void * stack_extend_memory_ = malloc(size);void * stack_extend_origin_memory_;char * stack_extend_dummy_memory_ = (char*)alloca((1+(int)(((long long)stack_extend_memory_)&127))*16);*stack_extend_dummy_memory_ = 0;asm volatile("mov %%rsp, %%rbx\nmov %%rax, %%rsp":"=b"(stack_extend_origin_memory_):"a"((char*)stack_extend_memory_+(size)-1024));
// #define END_STACK_EXTEND asm volatile("mov %%rax, %%rsp"::"a"(stack_extend_origin_memory_));free(stack_extend_memory_);

#include<stdio.h>
#include<math.h>
#include<algorithm>
#include<queue>
#include<deque>
#include<stack>
#include<string>
#include<string.h>
#include<vector>
#include<set>
#include<map>
#include<bitset>
#include<stdlib.h>
#include<cassert>
#include<time.h>
#include<bitset>
#include<numeric>
#include<unordered_set>
#include<unordered_map>
#include<complex>
using namespace std;
const long long mod=998244353;
const long long inf=mod*mod;
const long long d2=(mod+1)/2;
const long double EPS=1e-10;
const long double INF=1e+10;
const double PI=acos(-1.0);
const int C_SIZE = 111000;
const int UF_SIZE = 3100000;
namespace{
	long long fact[C_SIZE];
	long long finv[C_SIZE];
	long long inv[C_SIZE];
	inline long long Comb(int a,int b){
	 	if(a<b||b<0)return 0;
	 	return fact[a]*finv[b]%mod*finv[a-b]%mod;
	}
	void init_C(int n){
		fact[0]=finv[0]=inv[1]=1;
		for(int i=2;i<n;i++){
			inv[i]=(mod-(mod/i)*inv[mod%i]%mod)%mod;
		}
		for(int i=1;i<n;i++){
			fact[i]=fact[i-1]*i%mod;
			finv[i]=finv[i-1]*inv[i]%mod;
		}
	}
	long long pw(long long a,long long b){
		if(a<0LL)return 0;
		if(b<0LL)return 0;
		long long ret=1;
		while(b){
			if(b%2)ret=ret*a%mod;
			a=a*a%mod;
			b/=2;
		}
		return ret;
	}
	long long pw_mod(long long a,long long b,long long M){
		if(a<0LL)return 0;
		if(b<0LL)return 0;
		long long ret=1;
		while(b){
			if(b%2)ret=ret*a%M;
			a=a*a%M;
			b/=2;
		}
		return ret;
	}
	int pw_mod_int(int a,int b,int M){
		if(a<0)return 0;
		if(b<0)return 0;
		int ret=1;
		while(b){
			if(b%2)ret=(long long)ret*a%M;
			a=(long long)a*a%M;
			b/=2;
		}
		return ret;
	}
	int ABS(int a){return max(a,-a);}
	long long ABS(long long a){return max(a,-a);}
	double ABS(double a){return max(a,-a);}
	int sig(double r) { return (r < -EPS) ? -1 : (r > +EPS) ? +1 : 0; }
	int UF[UF_SIZE];
	void init_UF(int n){
		for(int i=0;i<n;i++)UF[i]=-1;
	}
	int FIND(int a){
		if(UF[a]<0)return a;
		return UF[a]=FIND(UF[a]);
	}
	void UNION(int a,int b){
		a=FIND(a);b=FIND(b);if(a==b)return;
		if(UF[a]>UF[b])swap(a,b);
		UF[a]+=UF[b];UF[b]=a;
	}
}
// ここから編集しろ
long long fib[110];
const int F=87;
int t[110];
int main(){
	long long a;scanf("%lld",&a);
	long long goal=a;
	fib[0]=fib[1]=1;
	for(int i=2;i<F;i++)fib[i]=fib[i-1]+fib[i-2];
//	for(int i=0;i<F;i++)printf("%d: %lld\n",i,fib[i]);
	for(int i=F-1;i>=0;i--){
		if(a>=fib[i]){
			t[i]=1;
			a-=fib[i];
		}
	}
	int mx=0;
	for(int i=0;i<F;i++){
		if(t[i])mx=i;
	}
	vector<int>ans;
	long long X=0;
	long long Y=0;
	for(int i=0;i<=mx;i++){
		if(t[mx-i]){
			if(i%2==0){
				X++;
				ans.push_back(0);
			}else{
				Y++;
				ans.push_back(1);
			}
	//		printf("%lld %lld\n",X,Y);
		}
		if(i%2==0){
			Y=X+Y;
			ans.push_back(3);
		}else{
			X=Y+X;
			ans.push_back(2);
		}
	//		printf("%lld %lld\n",X,Y);

	}
	int mask=0;
	if(goal==Y)mask=1;
	printf("%d\n",ans.size());
	for(int i=0;i<ans.size();i++){
		
		printf("%d\n",(ans[i]^mask)+1);
	}
}

Submission Info

Submission Time
Task C - Calculator
User tozangezan
Language C++ (GCC 9.2.1)
Score 600
Code Size 3750 Byte
Status AC
Exec Time 4 ms
Memory 3236 KiB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:151:11: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wformat=]
  151 |  printf("%d\n",ans.size());
      |          ~^    ~~~~~~~~~~
      |           |            |
      |           int          std::vector<int>::size_type {aka long unsigned int}
      |          %ld
./Main.cpp:152:15: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  152 |  for(int i=0;i<ans.size();i++){
      |              ~^~~~~~~~~~~
./Main.cpp:110:19: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  110 |  long long a;scanf("%lld",&a);
      |              ~~~~~^~~~~~~~~~~
./Main.cpp: At global scope:
./Main.cpp:99:7: warning: ‘void {anonymous}::UNION(int, int)’ defined but not used [-Wunused-function]
   99 |  void UNION(int a,int b){
      |       ^~~~~
./Main.cpp:92:7: warning: ‘void {anonymous}::init_UF(int)’ defined but not used [-Wunused-function]
   92 |  void init_UF(int n){
      |       ^~~~~~~
./Main.cpp:90:6: warning: ‘int {anonymous}::sig(double)’ defined but not used [-Wunused-function]
   90 |  int sig(double r) { return (r < -EPS) ? -1 : (r > +EPS) ? +1 : 0; }
      |      ^~~
./Main.cpp:89:9: warning: ‘double {anonymous}::ABS(double)’ defined but not used [-Wunused-function]
   89 |  double ABS(double a){return max(a,-a);}
      |         ^~~
./Main.cpp:88:12: warning: ‘long long int {anonymous}::ABS(long long int)’ defined but not used [-Wunused-function]
   88 |  long long ABS(long long a){return max(a,-a);}
      |            ^~~
./Main.cpp:87:6: warning: ‘int {anonymous}::ABS(int)’ defined but not used [-Wunused-function]
   87 |  int ABS(int a){return max(a,-a);}
      |      ^~~
./Main.cpp:76:6: warning: ‘int {anonymous}::pw_mod_int(int, in...

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 1
AC × 26
Set Name Test Cases
Sample 00-sample-001.txt
All 00-sample-001.txt, 01-001.txt, 01-002.txt, 01-003.txt, 01-004.txt, 01-005.txt, 01-006.txt, 01-007.txt, 01-008.txt, 01-009.txt, 01-010.txt, 01-011.txt, 01-012.txt, 01-013.txt, 01-014.txt, 01-015.txt, 01-016.txt, 01-017.txt, 01-018.txt, 01-019.txt, 01-020.txt, 01-021.txt, 01-022.txt, 01-023.txt, 01-024.txt, 01-025.txt
Case Name Status Exec Time Memory
00-sample-001.txt AC 1 ms 3124 KiB
01-001.txt AC 2 ms 3220 KiB
01-002.txt AC 2 ms 3216 KiB
01-003.txt AC 1 ms 3228 KiB
01-004.txt AC 1 ms 3232 KiB
01-005.txt AC 2 ms 3124 KiB
01-006.txt AC 1 ms 3236 KiB
01-007.txt AC 2 ms 3236 KiB
01-008.txt AC 2 ms 3192 KiB
01-009.txt AC 2 ms 3220 KiB
01-010.txt AC 3 ms 3108 KiB
01-011.txt AC 2 ms 3192 KiB
01-012.txt AC 2 ms 3140 KiB
01-013.txt AC 2 ms 3192 KiB
01-014.txt AC 2 ms 3228 KiB
01-015.txt AC 4 ms 3212 KiB
01-016.txt AC 2 ms 3228 KiB
01-017.txt AC 2 ms 3112 KiB
01-018.txt AC 3 ms 3196 KiB
01-019.txt AC 2 ms 3228 KiB
01-020.txt AC 1 ms 3212 KiB
01-021.txt AC 2 ms 3228 KiB
01-022.txt AC 2 ms 3228 KiB
01-023.txt AC 2 ms 3108 KiB
01-024.txt AC 2 ms 3112 KiB
01-025.txt AC 2 ms 3232 KiB