全WA求助
查看原帖
全WA求助
978188
T21C0637楼主2023/9/9 11:56

题目。

大概是输入的地方(\r)有问题,有大佬帮忙看看吗(改了好几天了)。

#include<bits/stdc++.h>
#include<string>
using namespace std;
long long n,t,ch,len;
string sta;
struct node{
	long long number; 
	string time;
	string book;
};
node a[110];
void zh(long long f[10]){  
	f[1]+=t;
	if(t>=0){   
		if(f[1]>=1000) f[2]+=f[1]/1000,f[1]%=1000;
		if(f[2]>=60) f[3]+=f[2]/1000,f[2]%=1000;
		if(f[3]>=60) f[4]+=f[3]/1000,f[3]%=1000;
	}else{
		long long sum=0;
	    if(f[1]<0){
		    sum=abs(f[1])/1000; 
		    if(abs(f[1])%1000!=0) sum++,f[1]=1000-abs(f[1])%1000;
			else f[1]=0;
			f[2]-=sum; 
		} 
	    if(f[2]<0){
		    sum=abs(f[2])/1000;
		    if(abs(f[2])%1000!=0) sum++,f[2]=1000-abs(f[2])%1000;
			else f[2]=0;
			f[3]-=sum;
		}
		if(f[3]<0){
		    sum=abs(f[3])/1000;
		    if(abs(f[3])%1000!=0) sum++,f[3]=1000-abs(f[3])%1000;
			else f[3]=0;
			f[4]-=sum;
		}
	}
}
void pd(string sta,int k){
	string st=sta+' ';
	long long sum=0,x=4,y=4;
	long long f1[10]={0},f2[10]={0}; 
	for(int i=0;i<st.size();i++){
		if(i==13) i=17;
		if(st[i]==':'||st[i]==','||st[i]==' '){
			if(x>0) f1[x]=sum,x--;
			else f2[y]=sum,y--;
			sum=0;
		}else sum=sum*10+(st[i]-48);
	} 
	zh(f1);
	zh(f2);
	cout<<a[k].number<<'\n';
	if(f1[4]<10) cout<<"0"<<f1[4]<<":";
	else cout<<f1[4]<<":";
	if(f1[3]<10) cout<<"0"<<f1[3]<<":";
	else cout<<f1[3]<<":";
	if(f1[2]<10) cout<<"0"<<f1[2]<<",";
	else cout<<f1[2]<<",";
	if(f1[1]<10) cout<<"00"<<f1[1]<<" --> ";
	else if(f1[1]<100) cout<<"0"<<f1[1]<<" --> ";
	     else cout<<f1[1]<<" --> ";
	if(f2[4]<10) cout<<"0"<<f2[4]<<":";
	else cout<<f2[4]<<":";
	if(f2[3]<10) cout<<"0"<<f2[3]<<":";
	else cout<<f2[3]<<":";
	if(f2[2]<10) cout<<"0"<<f2[2]<<",";
	else cout<<f2[2]<<",";
	if(f2[1]<10) cout<<"00"<<f2[1]<<'\n';
	else if(f2[1]<100) cout<<"0"<<f2[1]<<'\n';
	     else cout<<f2[1]<<'\n';  
	cout<<a[k].book<<'\n';
	if(k==n) cout<<"#";
	else cout<<'\n';    
}
int main(){
    while(cin>>ch){  
    	n++;
    	a[n].number=ch;
    	getchar();
    	getline(cin,a[n].time);
    	if(a[n].time[a[n].time.size()-1]=='\r') a[n].time.pop_back(); 
    	getline(cin,a[n].book);
    	if(a[n].book[a[n].book.size()-1]=='\r') a[n].book.pop_back();
    	getline(cin,sta);
    	if(sta[0]=='#') break;
        if(sta.empty()==0&&sta[sta.size()-1]=='\r') sta.pop_back();
    	while(sta.empty()==0){ 
    	    a[n].book+=('\n'+sta);
    		getline(cin,sta);
    		if(sta[0]=='#') break;
    		if(sta[sta.size()-1]=='\r') sta.pop_back();
		} 
		if(sta[0]=='#') break;
	}
	cin>>t;	
    for(int i=1;i<=n;i++) pd(a[i].time,i);
	return 0;
}

注释在这儿。

2023/9/9 11:56
加载中...