| ||||||||||
| 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 | |||||||||
Re:贡献了无数次WA,最后一组测试数据到底是什么?In Reply To:贡献了无数次WA,最后一组测试数据到底是什么? Posted by:animate at 2005-08-16 16:58:36 > #include<cstdio>
> #include<iostream>
> #include<cmath>
> #include<utility>
> using namespace std;
> int n,k;
> pair<int,int> table[100010];
>
> void Solve(int t){
> int i=0,j=1;
> int delta=-1,temp;
> int value,indexi,indexj;
>
> //为什么我把下面的注释掉就是AC,不注释就是WA?-____-||
> /*
> delta=abs(table[1].first-table[0].first-t);
> value=table[1].first-table[0].first;
> indexi=0;indexj=1;
> */
>
> while(j<n&&delta){
> int cur=table[j].first-table[i].first;
> temp=abs(t-cur);
> if(delat==-1||temp<delta){
> delta=temp;
> value=cur;
> indexi=table[i].second;
> indexj=table[j].second;
> }
> if(cur<t)j++;
> if(cur>t)i++;
> if(i==j)j++;
> }
>
> if(indexi<indexj)
> printf("%d %d %d\n",value,indexi+1,indexj);
> else
> printf("%d %d %d\n",value,indexj+1,indexi);
> }
>
> int main(){
> while(scanf("%d %d",&n,&k)==2&&n&&k){
> int i,vv;
> int sum=0;
> table[0].first=0;table[0].second=0;
> for(i=1;i<=n;i++){
> scanf("%d",&vv);
> sum+=vv;
> table[i].first=sum;
> table[i].second=i;
> }
> n++;
> sort(table,table+n);
> int t;
> for(i=0;i<k;i++){
> scanf("%d",&t);
> Solve(t);
> }
> }
> }
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator