Submission #1022432

#TimeUsernameProblemLanguageResultExecution timeMemory
1022432edogawa_somethingFountain Parks (IOI21_parks)C++17
5 / 100
82 ms30780 KiB
#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
        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++){
        if(f[i+1].F-f[i].F!=2)
        return 0;
        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++){
        if(b[i+1].F-b[i].F!=2)
        return 0;
        e1.pb(b[i].S);
        e2.pb(b[i+1].S);
        ax.pb(5);
        ay.pb(b[i].F+1);
    }
    if(b.empty()||f.empty()){
        build(e1,e2,ax,ay);
        return 1;
    }
    for(int i=2;i<=400000;i+=2){
        if(i>=f.front().F&&i<=f.back().F&&i>=b.front().F&&i<=b.back().F){
        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 (stderr)

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++){
      |                 ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...