답안 #972059

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
972059 2024-04-30T01:33:02 Z LCJLY Long Mansion (JOI17_long_mansion) C++14
25 / 100
143 ms 15784 KB
#include <bits/stdc++.h>
using namespace std;
	
#define int long long 
#define ld long double
#define show(x,y) cout << y << " " << #x << endl;
#define show2(x,y,i,j) cout << y << " " << #x << "  " << j << " " << #i << endl;
#define show3(x,y,i,j,p,q) cout << y << " " << #x << "  " << j << " " << #i << "  " << q << " " << #p << endl;
#define show4(x,y) for(auto it:y) cout << it << " "; cout << #x << endl;
typedef pair<long long,long long>pii;
typedef pair<int,pii>pi2;
mt19937_64 rng(chrono::system_clock::now().time_since_epoch().count());
 
vector<int>storage[5005];
 
bool f(int val, int l, int r){
	int index=lower_bound(storage[val].begin(),storage[val].end(),l)-storage[val].begin();
	//show3(val,val,l,l,r,r);
	//show(sz,storage[val].size());
	if(index==(int)storage[val].size()) return false;
	//show2(index,index,storage[val][index],storage[val][index]);
	if(storage[val][index]<=r) return true;
	return false;
}
 
void solve(){
	int n;
	cin >> n;
	int arr[n+1];
	for(int x=1;x<n;x++){
		cin >> arr[x];
	}
	
	int temp,temp2;
	for(int x=1;x<=n;x++){
		cin >> temp;
		for(int y=0;y<temp;y++){
			cin >> temp2;
			storage[temp2].push_back(x);
		}
	}
	
	pii ans[n+5];
	memset(ans,-1,sizeof(ans));
	for(int x=1;x<=n;x++){
		int l=x;
		int r=x;
		while(1){
			if(l!=1&&f(arr[l-1],l,r)){
				l--;
				if(ans[l].first!=-1){
					r=max(r,ans[l].second);
					l=min(l,ans[l].first);
				}
			}
			else if(r!=n&&f(arr[r],l,r)){
				r++;
			}
			else break;
		}
		ans[x]={l,r};
		//show2(l,l,r,r);
	}
	
	int q;
	cin >> q;
	for(int x=0;x<q;x++){
		cin >> temp >> temp2;
		if(ans[temp].first<=temp2&&ans[temp].second>=temp2){
			cout << "YES\n";
		}
		else cout << "NO\n";
	}
	
}
 
int32_t main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	int t=1;
	//freopen("in.txt","r",stdin);
	//cin >> t;
	while(t--){
		solve();
	}
}

Compilation message

long_mansion.cpp: In function 'void solve()':
long_mansion.cpp:44:27: warning: 'void* memset(void*, int, size_t)' writing to an object of type 'pii' {aka 'struct std::pair<long long int, long long int>'} with no trivial copy-assignment [-Wclass-memaccess]
   44 |  memset(ans,-1,sizeof(ans));
      |                           ^
In file included from /usr/include/c++/10/bits/stl_algobase.h:64,
                 from /usr/include/c++/10/bits/char_traits.h:39,
                 from /usr/include/c++/10/ios:40,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from long_mansion.cpp:1:
/usr/include/c++/10/bits/stl_pair.h:211:12: note: 'pii' {aka 'struct std::pair<long long int, long long int>'} declared here
  211 |     struct pair
      |            ^~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 604 KB Output is correct
2 Correct 2 ms 740 KB Output is correct
3 Correct 3 ms 868 KB Output is correct
4 Correct 2 ms 600 KB Output is correct
5 Correct 2 ms 608 KB Output is correct
6 Correct 2 ms 612 KB Output is correct
7 Correct 2 ms 596 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 604 KB Output is correct
2 Correct 2 ms 740 KB Output is correct
3 Correct 3 ms 868 KB Output is correct
4 Correct 2 ms 600 KB Output is correct
5 Correct 2 ms 608 KB Output is correct
6 Correct 2 ms 612 KB Output is correct
7 Correct 2 ms 596 KB Output is correct
8 Correct 79 ms 4688 KB Output is correct
9 Correct 77 ms 4696 KB Output is correct
10 Correct 81 ms 4852 KB Output is correct
11 Correct 79 ms 5024 KB Output is correct
12 Correct 78 ms 4220 KB Output is correct
13 Correct 91 ms 4736 KB Output is correct
14 Correct 73 ms 4928 KB Output is correct
15 Correct 74 ms 4696 KB Output is correct
16 Correct 70 ms 4952 KB Output is correct
17 Correct 75 ms 4948 KB Output is correct
18 Correct 74 ms 4796 KB Output is correct
19 Correct 74 ms 4948 KB Output is correct
20 Correct 80 ms 4692 KB Output is correct
21 Correct 74 ms 4988 KB Output is correct
22 Correct 76 ms 4692 KB Output is correct
23 Correct 75 ms 4452 KB Output is correct
24 Correct 76 ms 4456 KB Output is correct
25 Correct 75 ms 4436 KB Output is correct
26 Correct 75 ms 4436 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 134 ms 15148 KB Output is correct
2 Correct 134 ms 15584 KB Output is correct
3 Correct 128 ms 14736 KB Output is correct
4 Correct 132 ms 15672 KB Output is correct
5 Correct 143 ms 15784 KB Output is correct
6 Correct 119 ms 13392 KB Output is correct
7 Correct 114 ms 13056 KB Output is correct
8 Correct 112 ms 13392 KB Output is correct
9 Correct 105 ms 13236 KB Output is correct
10 Correct 105 ms 13256 KB Output is correct
11 Correct 100 ms 13100 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 604 KB Output is correct
2 Correct 2 ms 740 KB Output is correct
3 Correct 3 ms 868 KB Output is correct
4 Correct 2 ms 600 KB Output is correct
5 Correct 2 ms 608 KB Output is correct
6 Correct 2 ms 612 KB Output is correct
7 Correct 2 ms 596 KB Output is correct
8 Correct 79 ms 4688 KB Output is correct
9 Correct 77 ms 4696 KB Output is correct
10 Correct 81 ms 4852 KB Output is correct
11 Correct 79 ms 5024 KB Output is correct
12 Correct 78 ms 4220 KB Output is correct
13 Correct 91 ms 4736 KB Output is correct
14 Correct 73 ms 4928 KB Output is correct
15 Correct 74 ms 4696 KB Output is correct
16 Correct 70 ms 4952 KB Output is correct
17 Correct 75 ms 4948 KB Output is correct
18 Correct 74 ms 4796 KB Output is correct
19 Correct 74 ms 4948 KB Output is correct
20 Correct 80 ms 4692 KB Output is correct
21 Correct 74 ms 4988 KB Output is correct
22 Correct 76 ms 4692 KB Output is correct
23 Correct 75 ms 4452 KB Output is correct
24 Correct 76 ms 4456 KB Output is correct
25 Correct 75 ms 4436 KB Output is correct
26 Correct 75 ms 4436 KB Output is correct
27 Correct 134 ms 15148 KB Output is correct
28 Correct 134 ms 15584 KB Output is correct
29 Correct 128 ms 14736 KB Output is correct
30 Correct 132 ms 15672 KB Output is correct
31 Correct 143 ms 15784 KB Output is correct
32 Correct 119 ms 13392 KB Output is correct
33 Correct 114 ms 13056 KB Output is correct
34 Correct 112 ms 13392 KB Output is correct
35 Correct 105 ms 13236 KB Output is correct
36 Correct 105 ms 13256 KB Output is correct
37 Correct 100 ms 13100 KB Output is correct
38 Runtime error 26 ms 9304 KB Execution killed with signal 11
39 Halted 0 ms 0 KB -