#include "parks.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<ll> vii;
typedef pair<ll,ll> pii;
#define pb push_back
#define F first
#define S second
#define all(v) v.begin(),v.end()
const ll M=2e5+10;
vii v[M];
map<ll,bool>vis[M];
vector<pair<pair<int,int>,int>>segs;
bool contained(pair<pair<int,int>,int> x,pair<pair<int,int>,int>y){
if(x.F.F>y.F.F&&x.F.S<y.F.S)
return 1;
return 0;
}
int construct_roads(std::vector<int> x, std::vector<int> y) {
vector<pair<int,int>>f,m,b;
for(int i=0;i<x.size();i++){
if(x[i]==2){
f.pb({y[i],i});
}
else if(x[i]==100)
m.pb({y[i],i});
else
b.pb({y[i],i});
}
sort(all(f)),sort(all(m)),sort(all(b));
if(f.size()&&(f.back().F-f.front().F)/2!=f.size()-1)
return 0;
if(b.size()&&(b.back().F-b.front().F)/2!=b.size()-1)
return 0;
if(m.size()&&(m.back().F-m.front().F)/2!=m.size()-1)
return 0;
if(m.size()&&f.size()&&(m.back().F<f.front().F||m.front().F>f.back().F))
return 0;
if(b.size()&&m.size()&&(m.back().F<b.front().F||m.front().F>b.back().F))
return 0;
vector<int>e1,e2,ax,ay;
for(int i=0;i<ll(f.size())-1;i++){
e1.pb(f[i].S);
e2.pb(f[i+1].S);
ax.pb(1);
ay.pb(f[i].F+1);
}
for(int i=0;i<ll(b.size())-1;i++){
e1.pb(b[i].S);
e2.pb(b[i+1].S);
ax.pb(5);
ay.pb(b[i].F+1);
}
for(int i=2;i<=200000;i+=2){
for(auto it:f){
for(auto itt:b){
if(it.F==i&&itt.F==i){
e1.pb(it.S),e2.pb(itt.S);
ax.pb(3),ay.pb(it.F+1);
build(e1,e2,ax,ay);
return 1;
}
}
}
}
return 0;
}
Compilation message
parks.cpp: In function 'int construct_roads(std::vector<int>, std::vector<int>)':
parks.cpp:22:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
22 | for(int i=0;i<x.size();i++){
| ~^~~~~~~~~
parks.cpp:32:44: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
32 | if(f.size()&&(f.back().F-f.front().F)/2!=f.size()-1)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
parks.cpp:34:44: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
34 | if(b.size()&&(b.back().F-b.front().F)/2!=b.size()-1)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
parks.cpp:36:44: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
36 | if(m.size()&&(m.back().F-m.front().F)/2!=m.size()-1)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
6 ms |
14424 KB |
Solution announced impossible, but it is possible. |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
6 ms |
14424 KB |
Solution announced impossible, but it is possible. |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
6 ms |
14424 KB |
Solution announced impossible, but it is possible. |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
6 ms |
14424 KB |
Solution announced impossible, but it is possible. |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
6 ms |
14424 KB |
Solution announced impossible, but it is possible. |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
6 ms |
14424 KB |
Solution announced impossible, but it is possible. |
2 |
Halted |
0 ms |
0 KB |
- |