RT
本地和题解拍了一下,输出的字节数相同,也是对着题解写的,但是第六个操作死活调不动,求助
这个还没写完
/*
zzq 之毒瘤题,祭之
虽然是看着题解敲的,但是也快挂了
*/
#include<bits/stdc++.h>
using namespace std;
int cnt;
int a[1005],b[1005];
void I()
{
puts("I");
cnt++;
}
void F(int x)
{
printf("F %d\n",x);
}
void E(int x)
{
printf("E %d\n",x);
}
void C(int x)
{
printf("C %d\n",x);
cnt++;
}
void M(int x)
{
printf("M %d\n",x);
cnt++;
}
void T(int x,int y)
{
printf("T %d %d\n",x,y);
}
void O(int x)
{
printf("O %d\n",x);
}
void mft(int x)
{
M(x);
F(cnt);
T(cnt,x);
}
void change_2(int x,int a[],int p,int i)
{
int p2,j;
M(x);
F(cnt);
C(p);
for(;;i--,p/=2)
{
M(cnt-1);
x=cnt;
C(p-1);
T(cnt-3,cnt-2);
T(cnt-2,cnt);
M(cnt-2);
F(cnt);
a[20-i]=cnt;
if(p==1) return;
T(cnt-1,cnt-3);
C(1);
F(cnt);
T(cnt,cnt-4);
C(1e9);
T(cnt-1,cnt);
p2=cnt;
for(j=0;j<i;j++)
mft(p2);
M(p2);
F(x);
T(x,cnt);
M(x);
F(cnt);
C(p/2);
}
}
void min(int x,int y,int &ans)
{
M(y);
T(x,cnt);
ans=cnt;
}
void mnmx(int x,int y,int &ans1,int &ans2)
{
M(y);
T(x,cnt);
ans1=cnt;
C(1e9);
T(x,cnt);
T(y,cnt);
ans2=cnt;
}
void mut(int x,int y,int qwq,int qaq,bool fl1,bool fl2,int &ans)
{
int i,j,k;
C(1e9);
ans=cnt;
change_2(x,a,qwq,qaq);
if(fl2==0)
change_2(y,b,qwq,qaq);
for(i=20-qaq;i<=20;i++)
for(j=20-qaq;j<=20;j++)
if(i+j>=21&&(fl1==0||40-i-j<18))
{
M(a[i]);
F(cnt);
min(cnt,b[i],x);
C(1e9);
T(x,cnt);
x=cnt;
for(k=1;k<=40-i-j;k++)
mft(x);
T(x,ans);
}
}
int main()
{
freopen("7.txt","w",stdout);
int t,i,j,ans1,ans2,p;
cin>>t;
if(t==1)
{
I();
I();
C(1e9);
T(1,3);
T(2,3);
O(3);
}
if(t==2)
{
I();
I();
M(2);
T(1,3);
C(1e9);
T(1,4);
T(2,4);
M(3);
T(4,5);
O(4);
}
if(t==3)
{
I();
I();
M(2);
T(1,3);
C(1e9);
T(1,4);
T(2,4);
O(4);
}
if(t==4)
{
I();
I();
for(i=0;i<1001;i++)
{
M(cnt);
T(cnt-2,cnt);
C(1e9);
T(cnt-3,cnt);
T(cnt-2,cnt);
M(cnt-1);
T(cnt-1,cnt);
M(cnt-1);
F(cnt);
}
O(cnt);
}
if(t==5)
{
I();
C(1e9);
for(i=0;i<15;i++)
O(2);
change_2(1,a,1<<16,16);
for(i=4;i<=20;i++)
O(a[i]);
}
if(t==6)
{
I();
I();
mut(1,2,512,9,0,0,ans1);
O(ans1);
}
if(t==7)
{
I();
I();
C(1e9);
change_2(1,a,1<<16,16);
change_2(2,b,1<<16,16);
for(i=4;i<=20;i++)
{
mnmx(a[i],b[i],ans1,ans2);
M(ans1);
M(ans2);
F(cnt);
T(cnt,cnt-1);
C(1e9);
T(cnt-1,cnt);
p=cnt;
for(j=0;j<20-i;j++)
mft(p);
M(p);
F(cnt);
T(cnt,3);
}
O(3);
}
//if()
}