Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

2674 i don't know what does truncked mean ,,,,am i wrong.........who can help me???

Posted by fjctlzy at 2006-03-25 18:41:44
c#include<iostream>
#include<string>
#include<iomanip>
using namespace std;
struct mode{
	string name;
	float pos;
	int left,right;
	char direct;
	char finalDirect;
	float time;
};

int main(){
	int num;
	string lastOne;
	float lastTime=0;
	mode a[32001];
	float l,v;
	int i,j;
	int maxTime=0;
	float s,t;
	char direct;

  while(cin>>num&&num!=0){
	cin>>l>>v;
    for (int k=1;k<=num;k++){
     cin>>a[k].direct>>a[k].pos>>a[k].name;  
	}
	maxTime=0;	
	for (i=1;i<=num;i++) {
		if (a[i].direct=='p'){
		   s=l-a[i].pos;
		}
		else s=a[i].pos;
		 
		t=s/v;
		if (maxTime<t) {
			maxTime=t;
			direct=a[i].direct;
		}
	}
    
    int c=0,b=0;
	for (i=1;i<=num;i++)
		if (a[i].direct=='p') b++;
	c=num-b;
	int suml=0;
	int sumr=0;
	for (i=1;i<=num;i++){
        a[i].right=c-suml;
		a[i].left=sumr;
		if (a[i].direct=='n') a[i].right--;
        if (a[i].direct=='n') suml++;
		else sumr++;

		if (a[i].direct=='p'){
			if (a[i].left<a[i].right) a[i].finalDirect='n';
			else a[i].finalDirect=a[i].direct;
		}
		else if (a[i].direct=='n'){
			if (a[i].left>a[i].right) a[i].finalDirect='p';
			else a[i].finalDirect=a[i].direct;
		}
			
//		if (a[i].finalDirect=='p') a[i].time=(l-a[i].pos)/v;
//		else if (a[i].finalDirect=='n') a[i].time=a[i].pos/v;
	}

    float lastPos=0;

	if (direct=='p'){
		for (i=1;i<=num;i++){
			if (a[i].finalDirect=='p')
		    	if (lastPos<(l-a[i].pos)){
			    	lastPos=l-a[i].pos;
				    lastOne=a[i].name;
			}
		}
	}
	else for (i=1;i<=num;i++){
		if (a[i].finalDirect=='n')
	    	if (lastPos<(a[i].pos)){
		    	lastPos=a[i].pos;
		    	lastOne=a[i].name;
		}
	}
/*
    lastTime=0;
	for (i=1;i<=num;i++){
		if (a[i].finalDirect==direct)
			if (lastTime<a[i].time){
				lastTime=a[i].time;
				lastOne=a[i].name;
			}
	}
	*/
	cout<<setw(13)<<int(maxTime)<<".00";
	cout<<" "<<lastOne<<endl;
  }
	return 0;
}


Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator