Submission #16276017


Source Code Expand

#include<cstdio>
#include<vector>
int tot=3;
int add(int i,int j){
	int k=tot++;
	printf("+ %d %d %d\n",i,j,k);
	return k;
}
int cmp(int i,int j){
	int k=tot++;
	printf("< %d %d %d\n",i,j,k);
	return k;
}
int pw[33];
std::vector<int>bin(int x){
	std::vector<int>res;
	for(int i=30;i--;)res.push_back(0);
	int sum=2;
	x=add(x,*pw);
	for(int i=30;i--;){
		int tmp=res[i]=cmp(add(sum,pw[i]),x);
		for(int j=i;j--;)tmp=add(tmp,tmp);
		sum=add(sum,tmp);
	}
	return res;
}
int mul01(int x,int y){
	return cmp(cmp(x,*pw),y);
}
int main(){
	puts("3900");
	pw[0]=cmp(2,add(0,1));
	for(int i=1;i<30;i++)pw[i]=add(pw[i-1],pw[i-1]);
	std::vector<int>A=bin(0),B=bin(1),C;
	for(int i=0;i<A.size();i++){
		for(int j=0;j<B.size();j++){
			while(i+j>=C.size())C.push_back(2);
			C[i+j]=add(C[i+j],mul01(A[i],B[j]));
		}
	}
	for(int i=C.size()-1;i--;)C[i]=add(C[i],add(C[i+1],C[i+1]));
	printf("+ %d %d %d\n",2,C[0],2);
}

Submission Info

Submission Time
Task E - Product Simulation
User mn3twe
Language C++ (Clang 10.0.0)
Score 1800
Code Size 945 Byte
Status AC
Exec Time 10 ms
Memory 3096 KiB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 800 / 800 1000 / 1000
Status
AC × 1
AC × 1
AC × 4
Set Name Test Cases
Sample s1.txt
Subtask1 001.txt
Subtask2 101.txt, 102.txt, 103.txt, 104.txt
Case Name Status Exec Time Memory
001.txt AC 10 ms 2920 KiB
101.txt AC 8 ms 3012 KiB
102.txt AC 5 ms 3092 KiB
103.txt AC 3 ms 3068 KiB
104.txt AC 2 ms 3092 KiB
s1.txt AC 8 ms 3096 KiB