結果
| 問題 | No.2496 LCM between Permutations | 
| コンテスト | |
| ユーザー |  tails | 
| 提出日時 | 2023-10-06 23:15:11 | 
| 言語 | cLay (20241019-1) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 89 ms / 2,000 ms | 
| コード長 | 935 bytes | 
| コンパイル時間 | 8,618 ms | 
| コンパイル使用メモリ | 231,304 KB | 
| 実行使用メモリ | 26,780 KB | 
| 平均クエリ数 | 638.14 | 
| 最終ジャッジ日時 | 2024-07-26 16:59:10 | 
| 合計ジャッジ時間 | 11,171 ms | 
| ジャッジサーバーID (参考情報) | judge3 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 1 | 
| other | AC * 28 | 
ソースコード
//interactive
ll q(ll a,ll b :Memoize){
	wt("?",a,b);
	ll@x;
	return x;
}
{
	ll@n,a[n],b[n];
	if(n==1){
		wt("! 1 1");
		exit(0);
	}
	rep(i,1,n+1){
		ll x=q(i,i);
		if(x>1){
			ll f=Factor(x,a);
			x=a[f-1];
			if(x*2>n){
				ll y=q(i,i%n+1);
				if(y%x==0){
					//a[i] is large prime
					ll o=0;
					rep(j,1,n+1){
						ll z=q(i,j);
						if(z==x){
							ll w=q(i%n+1,j);
							if(w%x==0){
								b[j-1]=x;
							}else{
								b[j-1]=1;
								o=j;
							}
						}else{
							b[j-1]=z/x;
						}
					}
					rep(j,1,n+1){
						a[j-1]=q(j,o);
					}
				}else{
					//b[i] is large prime
					ll o=0;
					rep(j,1,n+1){
						ll z=q(j,i);
						if(z==x){
							ll w=q(j,i%n+1);
							if(w%x==0){
								a[j-1]=x;
							}else{
								a[j-1]=1;
								o=j;
							}
						}else{
							a[j-1]=z/x;
						}
					}
					rep(j,1,n+1){
						b[j-1]=q(o,j);
					}
				}
				wt("!",a(n),b(n));
				exit(0);
			}
		}
	}
}
            
            
            
        