結果
問題 | No.706 多眼生物の調査 |
ユーザー | squid |
提出日時 | 2018-07-23 21:29:11 |
言語 | C++11 (gcc 11.4.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,720 bytes |
コンパイル時間 | 1,588 ms |
コンパイル使用メモリ | 165,728 KB |
実行使用メモリ | 16,000 KB |
最終ジャッジ日時 | 2024-06-09 18:21:55 |
合計ジャッジ時間 | 8,244 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | TLE | - |
testcase_01 | -- | - |
testcase_02 | -- | - |
testcase_03 | -- | - |
testcase_04 | -- | - |
testcase_05 | -- | - |
testcase_06 | -- | - |
testcase_07 | -- | - |
ソースコード
#include<bits/stdc++.h> using namespace std; //constant const long long int inf = 1<<30; const int N = 1e5+1; const int M = 1e5+1; //variable vector<int> prime; vector<int> A[N]; //function bool isPrime(int x){ if(x<=1){ return false; } for(int i=2; i<x-1; i++){ if(x%i==0){ return false; } } return true; } void createPrime(){ for(int i=2; i<(int)(sqrt(1e5))+1; i++){ if(isPrime(i)){ prime.push_back(i); } } } void factVar(int in, int i){ for(int j=0; j<prime.size(); j++){ if(in%prime[j]==0){ while(in%prime[j]==0){ in/=prime[j]; } A[i].push_back(prime[j]); } } if(in > (int)(sqrt(1e5))+1){ A[i].push_back(in); } } int main() { int n,k; createPrime(); cin>>n>>k; for(int i=0; i<n; i++){ int in; cin>>in; factVar(in,i); } /*for(int i=0; i<A[0].size(); i++){ cout<<A[0][i]<<endl; }*/ set<int> dupList; int maxDist=0, rest=0; for(int left=0; left<n; left++){ for(int right=left+1; right<n+1;){ for(int i=left; i<right; i++){ for(int j=0; j<A[i].size(); j++){ dupList.insert(A[i][j]); //cout<<left<<' '<<right<<' '<<dupList.size()<<endl; } } if(dupList.size()<=k){ maxDist=max(maxDist, right-left); right++; } else{ dupList.clear(); break; } } } maxDist=max(maxDist, rest); cout<<maxDist<<endl; return 0; }