Submission #366149

#TimeUsernameProblemLanguageResultExecution timeMemory
366149HemimorRestore Array (RMI19_restore)C++14
20 / 100
648 ms876 KiB
#include <algorithm> #include <iostream> #include <iomanip> #include <numeric> #include <cassert> #include <vector> #include <random> #include <cmath> #include <stack> #include <queue> #include <set> #include <map> #define syosu(x) fixed<<setprecision(x) using namespace std; typedef long long ll; typedef unsigned int uint; typedef unsigned long long ull; typedef pair<int,int> P; typedef pair<double,double> pdd; typedef pair<ll,ll> pll; typedef vector<int> vi; typedef vector<vi> vvi; typedef vector<double> vd; typedef vector<vd> vvd; typedef vector<ll> vl; typedef vector<vl> vvl; typedef vector<string> vs; typedef vector<P> vp; typedef vector<vp> vvp; typedef vector<pll> vpll; typedef pair<int,P> pip; typedef vector<pip> vip; const int inf=1<<30; const ll INF=1ll<<60; const double pi=acos(-1); const double eps=1e-8; const ll mod=1e9+7; const int dx[8]={-1,0,1,0,1,1,-1,-1},dy[8]={0,1,0,-1,1,-1,1,-1}; vi vin(int n,int d=0){ vi a(n); for(int i=0;i<n;i++){ cin>>a[i]; a[i]-=d; } return a; } vl vlin(int n,int d=0){ vl a(n); for(auto &i:a){ cin>>i; i-=d; } return a; } vvi vvin(int n,int m){ vvi a(n,vi(m)); for(int i=0;i<n;i++) for(auto &j:a[i]) cin>>j; return a; } vvi gin(int n,int m,int d=1){ vvi g(n); for(int i=0;i<m;i++){ int u,v; cin>>u>>v; u-=d,v-=d; g[u].push_back(v); g[v].push_back(u); } return g; } void vout(vi a){ int n=a.size(); cout<<n<<" :"; for(auto i:a) cout<<' '<<i; cout<<endl; } void vvout(vvi a){ int n=a.size(); for(int i=0;i<n;i++) vout(a[i]); } bool ingrid(int x,int y,int n,int m){ return 0<=x&&x<n&&0<=y&&y<m; } int n,m; int main(){ scanf("%d%d",&n,&m); vvp g(n+1); vi d(n+1,inf); d[0]=0; for(int i=0;i<n;i++){ g[i].emplace_back(i+1,1); g[i+1].emplace_back(i,0); } for(int i=0;i<m;i++){ int l,r,k,v; scanf("%d%d%d%d",&l,&r,&k,&v); r++; if(v==0){ // A_r-A_l<=r-l-k g[l].emplace_back(r,r-l-k); } else{ // A_r-A_l>=r-l-k+1 // A_l-A_r<=l-r+k-1 g[r].emplace_back(l,l-r+k-1); } } for(int i=0;i<=n;i++){ bool B=0; for(int j=0;j<=n;j++){ for(auto p:g[j]){ int v=p.first; if(d[j]+p.second<d[v]){ d[v]=d[j]+p.second; B=1; } } } if(B==0) break; if(B==1&&i==n){ printf("-1\n"); return 0; } } for(int i=1;i<=n;i++){ if(i>1) printf(" "); printf("%d",d[i]-d[i-1]); } puts(""); }

Compilation message (stderr)

restore.cpp: In function 'int main()':
restore.cpp:95:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   95 |  scanf("%d%d",&n,&m);
      |  ~~~~~^~~~~~~~~~~~~~
restore.cpp:105:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  105 |   scanf("%d%d%d%d",&l,&r,&k,&v);
      |   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...