Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
有点水,,,一排一排的打印,,okSource Code Problem: 2380 User: 1083595345 Memory: 24468K Time: 2985MS Language: C++ Result: Accepted Source Code #include <stdio.h> #include <algorithm> typedef long long ll; typedef struct { ll x,y,z; }node; node node1[500010]; node node2[500010]; ll b[500010]; ll a[500010]; bool cmp(node num1,node num2) { return num1.x<num2.x; } bool cmp2(node num1,node num2) { return num1.y<num2.y; } int main() { int n,i,j; scanf("%d",&n); for(i=0;i<n;i++) scanf("%lld%lld%lld",&node1[i].x,&node1[i].y,&node1[i].z); std::sort(node1,node1+n,cmp); for(i=0;i<n;i++) node2[i]=node1[i]; std::sort(node2,node2+n,cmp2); b[0]=-1; b[1]=node1[0].x; int k=1; for(j=1;j<n;j++) if(node1[j].x!=b[k]) b[++k]=node1[j].x; for(j=0;j<k;j++) printf("%lld ",b[j]); printf("%lld\n",b[j]); // printf("%d",b[0][2]); i=0; while(i<n) { // printf("%d\n",b[0][2]); for(j=0;j<100001;j++) a[j]=0; //printf("%d\n",b[0][2]); a[0]=node2[i].y; i++; while(node2[i].y==node2[i-1].y) { i++; if(i>=n) break; } int l=1; for(j=0;j<n;j++) { if(j>0 && node1[j].x!=node1[j-1].x) l++; //printf("%d %d %d\n",a[l],l,b[l]); if(node1[j].x==b[l] && node1[j].y==a[0]) a[l]+=node1[j].z; // printf("%d %d %d %d %d %d\n",node1[j].x,b[l],node1[j].y,a[0],node1[j].z,a[l]); } for(j=0;j<k;j++) printf("%lld ",a[j]); printf("%lld\n",a[j]); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator