#include <bits/stdc++.h>
using namespace std;
typedef int ll;
typedef double ld;
const ll mod=1e9+7;
#define endl '\n'
ll n,k,q,arr[3007],vis[3007],s[3007];
vector<vector<ll>>v(3007);
bool f=0;
void dfs(vector<vector<int>>& v)
{
int n = v.size();
vector<int> deg(n);
for (int a = 0; a < n; a++)
for (int b : v[a])
deg[b]++;
vector<int> q;
q.reserve(n);
for (int i = 0; i < n; i++)
if (deg[i] == 0)
q.push_back(i);
for (int rep = 0; rep < q.size(); rep++)
{
int c = q[rep];
for (auto nxt : v[c])
{
deg[nxt]--;
if (deg[nxt] == 0)
q.push_back(nxt);
}
}
if(n>q.size())
f=1;
}
int32_t main()
{
//freopen("jumping.in","r",stdin);
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>k>>q;
for(int i=0; i<n; i++)
cin>>arr[i];
ll m[n];
for(int i=0; i<n; i++)
m[i]=i;
for(int h=0; h<2; h++)
{
for(int i=h; i<n; i+=2)
{
ll r=i+1,c=0;
while(r<n)
{
vector<vector<ll>>adj(k);
for(int j=i; j<r; j++)
{
if (j % 2 == i % 2)
adj[arr[j]-1].push_back(arr[j + 1]-1);
else
adj[arr[j + 1]-1].push_back(arr[j]-1);
}
f=0;
dfs(adj);
if(f)
break;
r++;
}
m[i]=r-1;
}
}
while(q--)
{
ll a,b;
cin>>a>>b;
a--,b--;
if(m[a]>=b)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}
Compilation message
Main.cpp: In function 'void dfs(std::vector<std::vector<int> >&)':
Main.cpp:23:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
23 | for (int rep = 0; rep < q.size(); rep++)
| ~~~~^~~~~~~~~~
Main.cpp:33:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
33 | if(n>q.size())
| ~^~~~~~~~~
Main.cpp: In function 'int32_t main()':
Main.cpp:55:22: warning: unused variable 'c' [-Wunused-variable]
55 | ll r=i+1,c=0;
| ^
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
172 ms |
3428 KB |
Output is correct |
2 |
Correct |
166 ms |
3404 KB |
Output is correct |
3 |
Correct |
169 ms |
3332 KB |
Output is correct |
4 |
Correct |
130 ms |
3296 KB |
Output is correct |
5 |
Correct |
150 ms |
3560 KB |
Output is correct |
6 |
Correct |
171 ms |
3328 KB |
Output is correct |
7 |
Correct |
187 ms |
3504 KB |
Output is correct |
8 |
Correct |
194 ms |
3352 KB |
Output is correct |
9 |
Correct |
736 ms |
3512 KB |
Output is correct |
10 |
Execution timed out |
1089 ms |
340 KB |
Time limit exceeded |
11 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
162 ms |
3464 KB |
Output is correct |
2 |
Correct |
161 ms |
3364 KB |
Output is correct |
3 |
Correct |
157 ms |
3408 KB |
Output is correct |
4 |
Correct |
133 ms |
4328 KB |
Output is correct |
5 |
Correct |
145 ms |
3544 KB |
Output is correct |
6 |
Correct |
158 ms |
3396 KB |
Output is correct |
7 |
Correct |
190 ms |
3412 KB |
Output is correct |
8 |
Correct |
158 ms |
3488 KB |
Output is correct |
9 |
Correct |
209 ms |
3840 KB |
Output is correct |
10 |
Correct |
462 ms |
4368 KB |
Output is correct |
11 |
Correct |
441 ms |
4432 KB |
Output is correct |
12 |
Correct |
0 ms |
340 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
340 KB |
Output is correct |
2 |
Execution timed out |
1078 ms |
512 KB |
Time limit exceeded |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
172 ms |
3428 KB |
Output is correct |
2 |
Correct |
166 ms |
3404 KB |
Output is correct |
3 |
Correct |
169 ms |
3332 KB |
Output is correct |
4 |
Correct |
130 ms |
3296 KB |
Output is correct |
5 |
Correct |
150 ms |
3560 KB |
Output is correct |
6 |
Correct |
171 ms |
3328 KB |
Output is correct |
7 |
Correct |
187 ms |
3504 KB |
Output is correct |
8 |
Correct |
194 ms |
3352 KB |
Output is correct |
9 |
Correct |
736 ms |
3512 KB |
Output is correct |
10 |
Execution timed out |
1089 ms |
340 KB |
Time limit exceeded |
11 |
Halted |
0 ms |
0 KB |
- |