답안 #987975

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
987975 2024-05-23T19:54:56 Z activedeltorre Shopping Plans (CCO20_day2problem3) C++14
15 / 25
163 ms 27328 KB
#include <iostream>
#include <algorithm>
#include <queue>
#pragma GCC optimize("O1")
#pragma GCC optimize("O2")
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
using namespace std;int inf=1000000007;struct node{unsigned int  sum;int layer,bitipref,lst,rghtbord,biti;};struct cmp{bool operator()(node a,node  b){return a.sum>b.sum;}};priority_queue<node,vector<node>,cmp>pq;vector<int>adj[200005],ord;int y[200005],x[200005],init[200005],cost[200005];bool cmp2(int a,int b){return cost[a]<cost[b];}node special(node curr){int g,g2;g=ord[curr.layer];g2=ord[curr.layer+1];curr.lst=0;curr.sum+=adj[g2][0];curr.layer++;curr.biti=1;curr.bitipref=0;curr.rghtbord=adj[g2].size()-1;return curr;}node skip(node curr){int g,g2;g=ord[curr.layer];g2=ord[curr.layer+1];if(x[g]==0){curr.sum=curr.sum-adj[g][curr.lst];}else curr.sum=curr.sum-adj[g][curr.lst]+adj[g][curr.lst-1];if(x[g2]==0){return special(curr);}curr.layer++;curr.biti=x[g2];curr.lst=x[g2];curr.bitipref=x[g2]-1;curr.rghtbord=adj[g2].size()-1;curr.sum+=adj[g2][curr.lst]-adj[g2][curr.lst-1];return curr;} node godown(node curr){int g,g2;g=ord[curr.layer];g2=ord[curr.layer+1];if(x[g2]==0){return special(curr);}curr.layer++;curr.biti=x[g2];curr.lst=x[g2];curr.bitipref=x[g2]-1;curr.rghtbord=adj[g2].size()-1;curr.sum+=adj[g2][curr.lst]-adj[g2][curr.lst-1];return curr;} node shift(node curr){int g;g=ord[curr.layer];curr.lst++;curr.sum+=adj[g][curr.lst]-adj[g][curr.lst-1];return curr;} node fixborderandshift(node curr){int g;g=ord[curr.layer];curr.rghtbord=curr.lst-1;curr.lst=curr.bitipref;curr.bitipref--;curr.sum+=adj[g][curr.lst]-adj[g][curr.lst-1];return curr;} node fixborderandcreate(node curr){int g;g=ord[curr.layer];curr.rghtbord=curr.lst-1;curr.lst=0;curr.biti++;curr.sum+=init[g];return curr;}signed  main(){int n,m,k,i,a,b;long long sum=0;ios_base::sync_with_stdio(false);cin.tie(NULL);cin>>n>>m>>k;for(i=1; i<=n; i++){cin>>a>>b;adj[a].push_back(b);}for(i=1; i<=m; i++){cin>>x[i]>>y[i];if(y[i]==0){cost[i]=inf;}else{sort(adj[i].begin(),adj[i].end());if(adj[i].size()<x[i]){for(int j=1; j<=k; j++){cout<<-1<<'\n';}return 0;}if(x[i]==0){if(adj[i].size()==0){cost[i]=inf;}else{init[i]=adj[i][0];cost[i]=adj[i][0];}}else{int vkuk=adj[i][0];init[i]=adj[i][0];for(int j=0; j<adj[i].size(); j++){if(j+1<=x[i]){sum+=adj[i][j];}adj[i][j]-=vkuk;}if(adj[i].size()==x[i]){cost[i]=inf;}else{cost[i]=adj[i][x[i]]-adj[i][x[i]-1];}}}ord.push_back(i);}sort(ord.begin(),ord.end(),cmp2);m--;for(i=0; i<ord.size(); i++){if(cost[ord[i]]==inf){m=i-1;break;}}node curr,curr2;cout<<sum<<'\n';k--;if(m>=0){int g=ord[0];if(x[g]==0){curr.layer=0;curr.sum=adj[g][0];curr.bitipref=0;curr.lst=0;curr.biti=1;curr.rghtbord=adj[g].size()-1;pq.push(curr);}else{curr.layer=0;curr.sum=adj[g][x[g]]-adj[g][x[g]-1];curr.bitipref=x[g]-1;curr.lst=x[g];curr.rghtbord=adj[g].size()-1;curr.biti=x[g];pq.push(curr);}while(pq.size() && k){curr=pq.top();pq.pop();k--;cout<<curr.sum+sum<<'\n';g=ord[curr.layer];if(x[g]==0 && curr.biti==1 && curr.layer+1<=m && curr.lst==0){curr2=skip(curr);pq.push(curr2);}if(curr.lst==x[g] && curr.bitipref==x[g]-1 && curr.biti==x[g] && curr.layer+1<=m){curr2=skip(curr);pq.push(curr2);}if(curr.lst+1<=curr.rghtbord){curr2=shift(curr);pq.push(curr2);}if(curr.bitipref>=1 && curr.lst>=curr.bitipref+1){curr2=fixborderandshift(curr);pq.push(curr2);}if(curr.bitipref==0 && curr.lst>=1 && curr.biti+1<=y[g]){curr2=fixborderandcreate(curr);pq.push(curr2);}if(curr.layer+1<=m){curr2=godown(curr);pq.push(curr2);}}}while(k){k--;cout<<-1<<'\n';}return 0;}

Compilation message

Main.cpp: In function 'node special(node)':
Main.cpp:9:366: warning: variable 'g' set but not used [-Wunused-but-set-variable]
    9 | using namespace std;int inf=1000000007;struct node{unsigned int  sum;int layer,bitipref,lst,rghtbord,biti;};struct cmp{bool operator()(node a,node  b){return a.sum>b.sum;}};priority_queue<node,vector<node>,cmp>pq;vector<int>adj[200005],ord;int y[200005],x[200005],init[200005],cost[200005];bool cmp2(int a,int b){return cost[a]<cost[b];}node special(node curr){int g,g2;g=ord[curr.layer];g2=ord[curr.layer+1];curr.lst=0;curr.sum+=adj[g2][0];curr.layer++;curr.biti=1;curr.bitipref=0;curr.rghtbord=adj[g2].size()-1;return curr;}node skip(node curr){int g,g2;g=ord[curr.layer];g2=ord[curr.layer+1];if(x[g]==0){curr.sum=curr.sum-adj[g][curr.lst];}else curr.sum=curr.sum-adj[g][curr.lst]+adj[g][curr.lst-1];if(x[g2]==0){return special(curr);}curr.layer++;curr.biti=x[g2];curr.lst=x[g2];curr.bitipref=x[g2]-1;curr.rghtbord=adj[g2].size()-1;curr.sum+=adj[g2][curr.lst]-adj[g2][curr.lst-1];return curr;} node godown(node curr){int g,g2;g=ord[curr.layer];g2=ord[curr.layer+1];if(x[g2]==0){return special(curr);}curr.layer++;curr.biti=x[g2];curr.lst=x[g2];curr.bitipref=x[g2]-1;curr.rghtbord=adj[g2].size()-1;curr.sum+=adj[g2][curr.lst]-adj[g2][curr.lst-1];return curr;} node shift(node curr){int g;g=ord[curr.layer];curr.lst++;curr.sum+=adj[g][curr.lst]-adj[g][curr.lst-1];return curr;} node fixborderandshift(node curr){int g;g=ord[curr.layer];curr.rghtbord=curr.lst-1;curr.lst=curr.bitipref;curr.bitipref--;curr.sum+=adj[g][curr.lst]-adj[g][curr.lst-1];return curr;} node fixborderandcreate(node curr){int g;g=ord[curr.layer];curr.rghtbord=curr.lst-1;curr.lst=0;curr.biti++;curr.sum+=init[g];return curr;}signed  main(){int n,m,k,i,a,b;long long sum=0;ios_base::sync_with_stdio(false);cin.tie(NULL);cin>>n>>m>>k;for(i=1; i<=n; i++){cin>>a>>b;adj[a].push_back(b);}for(i=1; i<=m; i++){cin>>x[i]>>y[i];if(y[i]==0){cost[i]=inf;}else{sort(adj[i].begin(),adj[i].end());if(adj[i].size()<x[i]){for(int j=1; j<=k; j++){cout<<-1<<'\n';}return 0;}if(x[i]==0){if(adj[i].size()==0){cost[i]=inf;}else{init[i]=adj[i][0];cost[i]=adj[i][0];}}else{int vkuk=adj[i][0];init[i]=adj[i][0];for(int j=0; j<adj[i].size(); j++){if(j+1<=x[i]){sum+=adj[i][j];}adj[i][j]-=vkuk;}if(adj[i].size()==x[i]){cost[i]=inf;}else{cost[i]=adj[i][x[i]]-adj[i][x[i]-1];}}}ord.push_back(i);}sort(ord.begin(),ord.end(),cmp2);m--;for(i=0; i<ord.size(); i++){if(cost[ord[i]]==inf){m=i-1;break;}}node curr,curr2;cout<<sum<<'\n';k--;if(m>=0){int g=ord[0];if(x[g]==0){curr.layer=0;curr.sum=adj[g][0];curr.bitipref=0;curr.lst=0;curr.biti=1;curr.rghtbord=adj[g].size()-1;pq.push(curr);}else{curr.layer=0;curr.sum=adj[g][x[g]]-adj[g][x[g]-1];curr.bitipref=x[g]-1;curr.lst=x[g];curr.rghtbord=adj[g].size()-1;curr.biti=x[g];pq.push(curr);}while(pq.size() && k){curr=pq.top();pq.pop();k--;cout<<curr.sum+sum<<'\n';g=ord[curr.layer];if(x[g]==0 && curr.biti==1 && curr.layer+1<=m && curr.lst==0){curr2=skip(curr);pq.push(curr2);}if(curr.lst==x[g] && curr.bitipref==x[g]-1 && curr.biti==x[g] && curr.layer+1<=m){curr2=skip(curr);pq.push(curr2);}if(curr.lst+1<=curr.rghtbord){curr2=shift(curr);pq.push(curr2);}if(curr.bitipref>=1 && curr.lst>=curr.bitipref+1){curr2=fixborderandshift(curr);pq.push(curr2);}if(curr.bitipref==0 && curr.lst>=1 && curr.biti+1<=y[g]){curr2=fixborderandcreate(curr);pq.push(curr2);}if(curr.layer+1<=m){curr2=godown(curr);pq.push(curr2);}}}while(k){k--;cout<<-1<<'\n';}return 0;}
      |                                                                                                                                                                                                                                                                                                                                                                              ^
Main.cpp: In function 'node godown(node)':
Main.cpp:9:924: warning: variable 'g' set but not used [-Wunused-but-set-variable]
    9 | using namespace std;int inf=1000000007;struct node{unsigned int  sum;int layer,bitipref,lst,rghtbord,biti;};struct cmp{bool operator()(node a,node  b){return a.sum>b.sum;}};priority_queue<node,vector<node>,cmp>pq;vector<int>adj[200005],ord;int y[200005],x[200005],init[200005],cost[200005];bool cmp2(int a,int b){return cost[a]<cost[b];}node special(node curr){int g,g2;g=ord[curr.layer];g2=ord[curr.layer+1];curr.lst=0;curr.sum+=adj[g2][0];curr.layer++;curr.biti=1;curr.bitipref=0;curr.rghtbord=adj[g2].size()-1;return curr;}node skip(node curr){int g,g2;g=ord[curr.layer];g2=ord[curr.layer+1];if(x[g]==0){curr.sum=curr.sum-adj[g][curr.lst];}else curr.sum=curr.sum-adj[g][curr.lst]+adj[g][curr.lst-1];if(x[g2]==0){return special(curr);}curr.layer++;curr.biti=x[g2];curr.lst=x[g2];curr.bitipref=x[g2]-1;curr.rghtbord=adj[g2].size()-1;curr.sum+=adj[g2][curr.lst]-adj[g2][curr.lst-1];return curr;} node godown(node curr){int g,g2;g=ord[curr.layer];g2=ord[curr.layer+1];if(x[g2]==0){return special(curr);}curr.layer++;curr.biti=x[g2];curr.lst=x[g2];curr.bitipref=x[g2]-1;curr.rghtbord=adj[g2].size()-1;curr.sum+=adj[g2][curr.lst]-adj[g2][curr.lst-1];return curr;} node shift(node curr){int g;g=ord[curr.layer];curr.lst++;curr.sum+=adj[g][curr.lst]-adj[g][curr.lst-1];return curr;} node fixborderandshift(node curr){int g;g=ord[curr.layer];curr.rghtbord=curr.lst-1;curr.lst=curr.bitipref;curr.bitipref--;curr.sum+=adj[g][curr.lst]-adj[g][curr.lst-1];return curr;} node fixborderandcreate(node curr){int g;g=ord[curr.layer];curr.rghtbord=curr.lst-1;curr.lst=0;curr.biti++;curr.sum+=init[g];return curr;}signed  main(){int n,m,k,i,a,b;long long sum=0;ios_base::sync_with_stdio(false);cin.tie(NULL);cin>>n>>m>>k;for(i=1; i<=n; i++){cin>>a>>b;adj[a].push_back(b);}for(i=1; i<=m; i++){cin>>x[i]>>y[i];if(y[i]==0){cost[i]=inf;}else{sort(adj[i].begin(),adj[i].end());if(adj[i].size()<x[i]){for(int j=1; j<=k; j++){cout<<-1<<'\n';}return 0;}if(x[i]==0){if(adj[i].size()==0){cost[i]=inf;}else{init[i]=adj[i][0];cost[i]=adj[i][0];}}else{int vkuk=adj[i][0];init[i]=adj[i][0];for(int j=0; j<adj[i].size(); j++){if(j+1<=x[i]){sum+=adj[i][j];}adj[i][j]-=vkuk;}if(adj[i].size()==x[i]){cost[i]=inf;}else{cost[i]=adj[i][x[i]]-adj[i][x[i]-1];}}}ord.push_back(i);}sort(ord.begin(),ord.end(),cmp2);m--;for(i=0; i<ord.size(); i++){if(cost[ord[i]]==inf){m=i-1;break;}}node curr,curr2;cout<<sum<<'\n';k--;if(m>=0){int g=ord[0];if(x[g]==0){curr.layer=0;curr.sum=adj[g][0];curr.bitipref=0;curr.lst=0;curr.biti=1;curr.rghtbord=adj[g].size()-1;pq.push(curr);}else{curr.layer=0;curr.sum=adj[g][x[g]]-adj[g][x[g]-1];curr.bitipref=x[g]-1;curr.lst=x[g];curr.rghtbord=adj[g].size()-1;curr.biti=x[g];pq.push(curr);}while(pq.size() && k){curr=pq.top();pq.pop();k--;cout<<curr.sum+sum<<'\n';g=ord[curr.layer];if(x[g]==0 && curr.biti==1 && curr.layer+1<=m && curr.lst==0){curr2=skip(curr);pq.push(curr2);}if(curr.lst==x[g] && curr.bitipref==x[g]-1 && curr.biti==x[g] && curr.layer+1<=m){curr2=skip(curr);pq.push(curr2);}if(curr.lst+1<=curr.rghtbord){curr2=shift(curr);pq.push(curr2);}if(curr.bitipref>=1 && curr.lst>=curr.bitipref+1){curr2=fixborderandshift(curr);pq.push(curr2);}if(curr.bitipref==0 && curr.lst>=1 && curr.biti+1<=y[g]){curr2=fixborderandcreate(curr);pq.push(curr2);}if(curr.layer+1<=m){curr2=godown(curr);pq.push(curr2);}}}while(k){k--;cout<<-1<<'\n';}return 0;}
      |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ^
Main.cpp: In function 'int main()':
Main.cpp:9:1873: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
    9 | using namespace std;int inf=1000000007;struct node{unsigned int  sum;int layer,bitipref,lst,rghtbord,biti;};struct cmp{bool operator()(node a,node  b){return a.sum>b.sum;}};priority_queue<node,vector<node>,cmp>pq;vector<int>adj[200005],ord;int y[200005],x[200005],init[200005],cost[200005];bool cmp2(int a,int b){return cost[a]<cost[b];}node special(node curr){int g,g2;g=ord[curr.layer];g2=ord[curr.layer+1];curr.lst=0;curr.sum+=adj[g2][0];curr.layer++;curr.biti=1;curr.bitipref=0;curr.rghtbord=adj[g2].size()-1;return curr;}node skip(node curr){int g,g2;g=ord[curr.layer];g2=ord[curr.layer+1];if(x[g]==0){curr.sum=curr.sum-adj[g][curr.lst];}else curr.sum=curr.sum-adj[g][curr.lst]+adj[g][curr.lst-1];if(x[g2]==0){return special(curr);}curr.layer++;curr.biti=x[g2];curr.lst=x[g2];curr.bitipref=x[g2]-1;curr.rghtbord=adj[g2].size()-1;curr.sum+=adj[g2][curr.lst]-adj[g2][curr.lst-1];return curr;} node godown(node curr){int g,g2;g=ord[curr.layer];g2=ord[curr.layer+1];if(x[g2]==0){return special(curr);}curr.layer++;curr.biti=x[g2];curr.lst=x[g2];curr.bitipref=x[g2]-1;curr.rghtbord=adj[g2].size()-1;curr.sum+=adj[g2][curr.lst]-adj[g2][curr.lst-1];return curr;} node shift(node curr){int g;g=ord[curr.layer];curr.lst++;curr.sum+=adj[g][curr.lst]-adj[g][curr.lst-1];return curr;} node fixborderandshift(node curr){int g;g=ord[curr.layer];curr.rghtbord=curr.lst-1;curr.lst=curr.bitipref;curr.bitipref--;curr.sum+=adj[g][curr.lst]-adj[g][curr.lst-1];return curr;} node fixborderandcreate(node curr){int g;g=ord[curr.layer];curr.rghtbord=curr.lst-1;curr.lst=0;curr.biti++;curr.sum+=init[g];return curr;}signed  main(){int n,m,k,i,a,b;long long sum=0;ios_base::sync_with_stdio(false);cin.tie(NULL);cin>>n>>m>>k;for(i=1; i<=n; i++){cin>>a>>b;adj[a].push_back(b);}for(i=1; i<=m; i++){cin>>x[i]>>y[i];if(y[i]==0){cost[i]=inf;}else{sort(adj[i].begin(),adj[i].end());if(adj[i].size()<x[i]){for(int j=1; j<=k; j++){cout<<-1<<'\n';}return 0;}if(x[i]==0){if(adj[i].size()==0){cost[i]=inf;}else{init[i]=adj[i][0];cost[i]=adj[i][0];}}else{int vkuk=adj[i][0];init[i]=adj[i][0];for(int j=0; j<adj[i].size(); j++){if(j+1<=x[i]){sum+=adj[i][j];}adj[i][j]-=vkuk;}if(adj[i].size()==x[i]){cost[i]=inf;}else{cost[i]=adj[i][x[i]]-adj[i][x[i]-1];}}}ord.push_back(i);}sort(ord.begin(),ord.end(),cmp2);m--;for(i=0; i<ord.size(); i++){if(cost[ord[i]]==inf){m=i-1;break;}}node curr,curr2;cout<<sum<<'\n';k--;if(m>=0){int g=ord[0];if(x[g]==0){curr.layer=0;curr.sum=adj[g][0];curr.bitipref=0;curr.lst=0;curr.biti=1;curr.rghtbord=adj[g].size()-1;pq.push(curr);}else{curr.layer=0;curr.sum=adj[g][x[g]]-adj[g][x[g]-1];curr.bitipref=x[g]-1;curr.lst=x[g];curr.rghtbord=adj[g].size()-1;curr.biti=x[g];pq.push(curr);}while(pq.size() && k){curr=pq.top();pq.pop();k--;cout<<curr.sum+sum<<'\n';g=ord[curr.layer];if(x[g]==0 && curr.biti==1 && curr.layer+1<=m && curr.lst==0){curr2=skip(curr);pq.push(curr2);}if(curr.lst==x[g] && curr.bitipref==x[g]-1 && curr.biti==x[g] && curr.layer+1<=m){curr2=skip(curr);pq.push(curr2);}if(curr.lst+1<=curr.rghtbord){curr2=shift(curr);pq.push(curr2);}if(curr.bitipref>=1 && curr.lst>=curr.bitipref+1){curr2=fixborderandshift(curr);pq.push(curr2);}if(curr.bitipref==0 && curr.lst>=1 && curr.biti+1<=y[g]){curr2=fixborderandcreate(curr);pq.push(curr2);}if(curr.layer+1<=m){curr2=godown(curr);pq.push(curr2);}}}while(k){k--;cout<<-1<<'\n';}return 0;}
      |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ~~~~~~~~~~~~~^~~~~
Main.cpp:9:2075: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    9 | using namespace std;int inf=1000000007;struct node{unsigned int  sum;int layer,bitipref,lst,rghtbord,biti;};struct cmp{bool operator()(node a,node  b){return a.sum>b.sum;}};priority_queue<node,vector<node>,cmp>pq;vector<int>adj[200005],ord;int y[200005],x[200005],init[200005],cost[200005];bool cmp2(int a,int b){return cost[a]<cost[b];}node special(node curr){int g,g2;g=ord[curr.layer];g2=ord[curr.layer+1];curr.lst=0;curr.sum+=adj[g2][0];curr.layer++;curr.biti=1;curr.bitipref=0;curr.rghtbord=adj[g2].size()-1;return curr;}node skip(node curr){int g,g2;g=ord[curr.layer];g2=ord[curr.layer+1];if(x[g]==0){curr.sum=curr.sum-adj[g][curr.lst];}else curr.sum=curr.sum-adj[g][curr.lst]+adj[g][curr.lst-1];if(x[g2]==0){return special(curr);}curr.layer++;curr.biti=x[g2];curr.lst=x[g2];curr.bitipref=x[g2]-1;curr.rghtbord=adj[g2].size()-1;curr.sum+=adj[g2][curr.lst]-adj[g2][curr.lst-1];return curr;} node godown(node curr){int g,g2;g=ord[curr.layer];g2=ord[curr.layer+1];if(x[g2]==0){return special(curr);}curr.layer++;curr.biti=x[g2];curr.lst=x[g2];curr.bitipref=x[g2]-1;curr.rghtbord=adj[g2].size()-1;curr.sum+=adj[g2][curr.lst]-adj[g2][curr.lst-1];return curr;} node shift(node curr){int g;g=ord[curr.layer];curr.lst++;curr.sum+=adj[g][curr.lst]-adj[g][curr.lst-1];return curr;} node fixborderandshift(node curr){int g;g=ord[curr.layer];curr.rghtbord=curr.lst-1;curr.lst=curr.bitipref;curr.bitipref--;curr.sum+=adj[g][curr.lst]-adj[g][curr.lst-1];return curr;} node fixborderandcreate(node curr){int g;g=ord[curr.layer];curr.rghtbord=curr.lst-1;curr.lst=0;curr.biti++;curr.sum+=init[g];return curr;}signed  main(){int n,m,k,i,a,b;long long sum=0;ios_base::sync_with_stdio(false);cin.tie(NULL);cin>>n>>m>>k;for(i=1; i<=n; i++){cin>>a>>b;adj[a].push_back(b);}for(i=1; i<=m; i++){cin>>x[i]>>y[i];if(y[i]==0){cost[i]=inf;}else{sort(adj[i].begin(),adj[i].end());if(adj[i].size()<x[i]){for(int j=1; j<=k; j++){cout<<-1<<'\n';}return 0;}if(x[i]==0){if(adj[i].size()==0){cost[i]=inf;}else{init[i]=adj[i][0];cost[i]=adj[i][0];}}else{int vkuk=adj[i][0];init[i]=adj[i][0];for(int j=0; j<adj[i].size(); j++){if(j+1<=x[i]){sum+=adj[i][j];}adj[i][j]-=vkuk;}if(adj[i].size()==x[i]){cost[i]=inf;}else{cost[i]=adj[i][x[i]]-adj[i][x[i]-1];}}}ord.push_back(i);}sort(ord.begin(),ord.end(),cmp2);m--;for(i=0; i<ord.size(); i++){if(cost[ord[i]]==inf){m=i-1;break;}}node curr,curr2;cout<<sum<<'\n';k--;if(m>=0){int g=ord[0];if(x[g]==0){curr.layer=0;curr.sum=adj[g][0];curr.bitipref=0;curr.lst=0;curr.biti=1;curr.rghtbord=adj[g].size()-1;pq.push(curr);}else{curr.layer=0;curr.sum=adj[g][x[g]]-adj[g][x[g]-1];curr.bitipref=x[g]-1;curr.lst=x[g];curr.rghtbord=adj[g].size()-1;curr.biti=x[g];pq.push(curr);}while(pq.size() && k){curr=pq.top();pq.pop();k--;cout<<curr.sum+sum<<'\n';g=ord[curr.layer];if(x[g]==0 && curr.biti==1 && curr.layer+1<=m && curr.lst==0){curr2=skip(curr);pq.push(curr2);}if(curr.lst==x[g] && curr.bitipref==x[g]-1 && curr.biti==x[g] && curr.layer+1<=m){curr2=skip(curr);pq.push(curr2);}if(curr.lst+1<=curr.rghtbord){curr2=shift(curr);pq.push(curr2);}if(curr.bitipref>=1 && curr.lst>=curr.bitipref+1){curr2=fixborderandshift(curr);pq.push(curr2);}if(curr.bitipref==0 && curr.lst>=1 && curr.biti+1<=y[g]){curr2=fixborderandcreate(curr);pq.push(curr2);}if(curr.layer+1<=m){curr2=godown(curr);pq.push(curr2);}}}while(k){k--;cout<<-1<<'\n';}return 0;}
      |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ~^~~~~~~~~~~~~~
Main.cpp:9:2159: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
    9 | using namespace std;int inf=1000000007;struct node{unsigned int  sum;int layer,bitipref,lst,rghtbord,biti;};struct cmp{bool operator()(node a,node  b){return a.sum>b.sum;}};priority_queue<node,vector<node>,cmp>pq;vector<int>adj[200005],ord;int y[200005],x[
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 5468 KB Output is correct
2 Correct 5 ms 5468 KB Output is correct
3 Correct 5 ms 5468 KB Output is correct
4 Correct 5 ms 5468 KB Output is correct
5 Correct 5 ms 5468 KB Output is correct
6 Correct 5 ms 5468 KB Output is correct
7 Correct 5 ms 5464 KB Output is correct
8 Correct 5 ms 5468 KB Output is correct
9 Correct 3 ms 5212 KB Output is correct
10 Correct 5 ms 5468 KB Output is correct
11 Correct 4 ms 5212 KB Output is correct
12 Correct 3 ms 5212 KB Output is correct
13 Correct 4 ms 5468 KB Output is correct
14 Correct 5 ms 5468 KB Output is correct
15 Correct 5 ms 5212 KB Output is correct
16 Correct 4 ms 5468 KB Output is correct
17 Correct 6 ms 5468 KB Output is correct
18 Correct 4 ms 5212 KB Output is correct
19 Correct 4 ms 5468 KB Output is correct
20 Correct 5 ms 5468 KB Output is correct
21 Correct 3 ms 5140 KB Output is correct
22 Correct 4 ms 5468 KB Output is correct
23 Correct 4 ms 5480 KB Output is correct
24 Correct 4 ms 5208 KB Output is correct
25 Correct 4 ms 5212 KB Output is correct
26 Correct 6 ms 5468 KB Output is correct
27 Correct 4 ms 5468 KB Output is correct
28 Correct 5 ms 5468 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 61 ms 18888 KB Output is correct
2 Correct 61 ms 18876 KB Output is correct
3 Correct 63 ms 18876 KB Output is correct
4 Correct 60 ms 18820 KB Output is correct
5 Correct 67 ms 12808 KB Output is correct
6 Correct 54 ms 12640 KB Output is correct
7 Correct 61 ms 18624 KB Output is correct
8 Correct 56 ms 18416 KB Output is correct
9 Correct 13 ms 5720 KB Output is correct
10 Correct 61 ms 18884 KB Output is correct
11 Correct 12 ms 5720 KB Output is correct
12 Correct 27 ms 6536 KB Output is correct
13 Correct 67 ms 18476 KB Output is correct
14 Correct 60 ms 18872 KB Output is correct
15 Correct 15 ms 5724 KB Output is correct
16 Correct 62 ms 18360 KB Output is correct
17 Correct 63 ms 18636 KB Output is correct
18 Correct 20 ms 6236 KB Output is correct
19 Correct 63 ms 18872 KB Output is correct
20 Correct 59 ms 19136 KB Output is correct
21 Correct 13 ms 5976 KB Output is correct
22 Correct 59 ms 11824 KB Output is correct
23 Correct 59 ms 18076 KB Output is correct
24 Correct 13 ms 5724 KB Output is correct
25 Correct 12 ms 5724 KB Output is correct
26 Correct 48 ms 12492 KB Output is correct
27 Correct 50 ms 12376 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 5468 KB Output is correct
2 Correct 5 ms 5468 KB Output is correct
3 Correct 5 ms 5468 KB Output is correct
4 Correct 5 ms 5468 KB Output is correct
5 Correct 5 ms 5468 KB Output is correct
6 Correct 5 ms 5468 KB Output is correct
7 Correct 5 ms 5464 KB Output is correct
8 Correct 5 ms 5468 KB Output is correct
9 Correct 3 ms 5212 KB Output is correct
10 Correct 5 ms 5468 KB Output is correct
11 Correct 4 ms 5212 KB Output is correct
12 Correct 3 ms 5212 KB Output is correct
13 Correct 4 ms 5468 KB Output is correct
14 Correct 5 ms 5468 KB Output is correct
15 Correct 5 ms 5212 KB Output is correct
16 Correct 4 ms 5468 KB Output is correct
17 Correct 6 ms 5468 KB Output is correct
18 Correct 4 ms 5212 KB Output is correct
19 Correct 4 ms 5468 KB Output is correct
20 Correct 5 ms 5468 KB Output is correct
21 Correct 3 ms 5140 KB Output is correct
22 Correct 4 ms 5468 KB Output is correct
23 Correct 4 ms 5480 KB Output is correct
24 Correct 4 ms 5208 KB Output is correct
25 Correct 4 ms 5212 KB Output is correct
26 Correct 6 ms 5468 KB Output is correct
27 Correct 4 ms 5468 KB Output is correct
28 Correct 5 ms 5468 KB Output is correct
29 Correct 61 ms 18888 KB Output is correct
30 Correct 61 ms 18876 KB Output is correct
31 Correct 63 ms 18876 KB Output is correct
32 Correct 60 ms 18820 KB Output is correct
33 Correct 67 ms 12808 KB Output is correct
34 Correct 54 ms 12640 KB Output is correct
35 Correct 61 ms 18624 KB Output is correct
36 Correct 56 ms 18416 KB Output is correct
37 Correct 13 ms 5720 KB Output is correct
38 Correct 61 ms 18884 KB Output is correct
39 Correct 12 ms 5720 KB Output is correct
40 Correct 27 ms 6536 KB Output is correct
41 Correct 67 ms 18476 KB Output is correct
42 Correct 60 ms 18872 KB Output is correct
43 Correct 15 ms 5724 KB Output is correct
44 Correct 62 ms 18360 KB Output is correct
45 Correct 63 ms 18636 KB Output is correct
46 Correct 20 ms 6236 KB Output is correct
47 Correct 63 ms 18872 KB Output is correct
48 Correct 59 ms 19136 KB Output is correct
49 Correct 13 ms 5976 KB Output is correct
50 Correct 59 ms 11824 KB Output is correct
51 Correct 59 ms 18076 KB Output is correct
52 Correct 13 ms 5724 KB Output is correct
53 Correct 12 ms 5724 KB Output is correct
54 Correct 48 ms 12492 KB Output is correct
55 Correct 50 ms 12376 KB Output is correct
56 Correct 135 ms 26940 KB Output is correct
57 Correct 129 ms 24128 KB Output is correct
58 Correct 135 ms 25300 KB Output is correct
59 Correct 119 ms 22592 KB Output is correct
60 Correct 131 ms 21672 KB Output is correct
61 Correct 131 ms 25088 KB Output is correct
62 Correct 127 ms 21184 KB Output is correct
63 Correct 103 ms 19832 KB Output is correct
64 Correct 54 ms 7876 KB Output is correct
65 Correct 126 ms 24288 KB Output is correct
66 Correct 49 ms 8544 KB Output is correct
67 Incorrect 46 ms 8392 KB Output isn't correct
68 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 43 ms 7120 KB Output is correct
2 Correct 36 ms 6348 KB Output is correct
3 Correct 14 ms 5720 KB Output is correct
4 Correct 13 ms 5720 KB Output is correct
5 Correct 155 ms 27304 KB Output is correct
6 Correct 149 ms 25960 KB Output is correct
7 Correct 148 ms 26356 KB Output is correct
8 Correct 145 ms 25248 KB Output is correct
9 Correct 147 ms 27328 KB Output is correct
10 Correct 144 ms 25788 KB Output is correct
11 Correct 134 ms 24360 KB Output is correct
12 Correct 119 ms 23480 KB Output is correct
13 Correct 102 ms 11668 KB Output is correct
14 Correct 149 ms 25916 KB Output is correct
15 Correct 163 ms 25844 KB Output is correct
16 Correct 61 ms 12864 KB Output is correct
17 Correct 72 ms 18868 KB Output is correct
18 Correct 158 ms 26568 KB Output is correct
19 Correct 66 ms 19128 KB Output is correct
20 Correct 71 ms 18876 KB Output is correct
21 Correct 137 ms 25276 KB Output is correct
22 Correct 60 ms 12832 KB Output is correct
23 Correct 70 ms 19012 KB Output is correct
24 Correct 156 ms 27320 KB Output is correct
25 Correct 63 ms 19264 KB Output is correct
26 Correct 60 ms 19192 KB Output is correct
27 Correct 126 ms 23092 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 5468 KB Output is correct
2 Correct 5 ms 5468 KB Output is correct
3 Correct 5 ms 5468 KB Output is correct
4 Correct 5 ms 5468 KB Output is correct
5 Correct 5 ms 5468 KB Output is correct
6 Correct 5 ms 5468 KB Output is correct
7 Correct 5 ms 5464 KB Output is correct
8 Correct 5 ms 5468 KB Output is correct
9 Correct 3 ms 5212 KB Output is correct
10 Correct 5 ms 5468 KB Output is correct
11 Correct 4 ms 5212 KB Output is correct
12 Correct 3 ms 5212 KB Output is correct
13 Correct 4 ms 5468 KB Output is correct
14 Correct 5 ms 5468 KB Output is correct
15 Correct 5 ms 5212 KB Output is correct
16 Correct 4 ms 5468 KB Output is correct
17 Correct 6 ms 5468 KB Output is correct
18 Correct 4 ms 5212 KB Output is correct
19 Correct 4 ms 5468 KB Output is correct
20 Correct 5 ms 5468 KB Output is correct
21 Correct 3 ms 5140 KB Output is correct
22 Correct 4 ms 5468 KB Output is correct
23 Correct 4 ms 5480 KB Output is correct
24 Correct 4 ms 5208 KB Output is correct
25 Correct 4 ms 5212 KB Output is correct
26 Correct 6 ms 5468 KB Output is correct
27 Correct 4 ms 5468 KB Output is correct
28 Correct 5 ms 5468 KB Output is correct
29 Correct 61 ms 18888 KB Output is correct
30 Correct 61 ms 18876 KB Output is correct
31 Correct 63 ms 18876 KB Output is correct
32 Correct 60 ms 18820 KB Output is correct
33 Correct 67 ms 12808 KB Output is correct
34 Correct 54 ms 12640 KB Output is correct
35 Correct 61 ms 18624 KB Output is correct
36 Correct 56 ms 18416 KB Output is correct
37 Correct 13 ms 5720 KB Output is correct
38 Correct 61 ms 18884 KB Output is correct
39 Correct 12 ms 5720 KB Output is correct
40 Correct 27 ms 6536 KB Output is correct
41 Correct 67 ms 18476 KB Output is correct
42 Correct 60 ms 18872 KB Output is correct
43 Correct 15 ms 5724 KB Output is correct
44 Correct 62 ms 18360 KB Output is correct
45 Correct 63 ms 18636 KB Output is correct
46 Correct 20 ms 6236 KB Output is correct
47 Correct 63 ms 18872 KB Output is correct
48 Correct 59 ms 19136 KB Output is correct
49 Correct 13 ms 5976 KB Output is correct
50 Correct 59 ms 11824 KB Output is correct
51 Correct 59 ms 18076 KB Output is correct
52 Correct 13 ms 5724 KB Output is correct
53 Correct 12 ms 5724 KB Output is correct
54 Correct 48 ms 12492 KB Output is correct
55 Correct 50 ms 12376 KB Output is correct
56 Correct 135 ms 26940 KB Output is correct
57 Correct 129 ms 24128 KB Output is correct
58 Correct 135 ms 25300 KB Output is correct
59 Correct 119 ms 22592 KB Output is correct
60 Correct 131 ms 21672 KB Output is correct
61 Correct 131 ms 25088 KB Output is correct
62 Correct 127 ms 21184 KB Output is correct
63 Correct 103 ms 19832 KB Output is correct
64 Correct 54 ms 7876 KB Output is correct
65 Correct 126 ms 24288 KB Output is correct
66 Correct 49 ms 8544 KB Output is correct
67 Incorrect 46 ms 8392 KB Output isn't correct
68 Halted 0 ms 0 KB -