第一个问题,你是怎样在控制台输入的?
by zzyhzyy @ 2021-12-04 17:18:31
把
```cpp
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
```
删掉即可。
by _l_l_ @ 2021-12-04 17:21:20
@[disangan223](/user/109114) 不行啊,这几句只是为了加快读取速度
by YSGTX @ 2021-12-08 15:21:34
@[YSGTX](/user/531213) 我的意思是让 @ zzyhzyy 把上述代码删掉,这样就能读入了
by _l_l_ @ 2021-12-08 15:25:08
### ~~30分钟只调了一次就A了(开心)~~
```cpp
#include<iostream>
#include<cstring>
#include<cmath>
#include<vector>
#include<queue>
#include<deque>
#include<cstdio>
#include<algorithm>
#include<string>
#include<list>
#define itn int
#define int long long
using namespace std;
string s;
int po,top,sum,z,n,m;
int q[500005];
char p;
int a[3][500005];
int gcdd(int x,int y){
int xx=x,yy=y;
int o=x%y;
while(o){
x=y;
y=o;
o=x%y;
}
return xx*yy/y;
}
int gcd(int x,int y){
int o=x%y;
while(o){
x=y;
y=o;
o=x%y;
}
return y;
}
signed main(){
cin>>s;
s=s+'-';
q[1]=1;
if(s[0]=='-')q[1]=0;
for(int i=0;i<s.size();i++){
if(s[i]>='0'&&s[i]<='9'){
po=po*10+s[i]-'0';
}else{
if(s[i]=='-'||s[i]=='+'){
a[2][top]=po;
if(s[i]=='-')q[top+1]=0;
else q[top+1]=1;
po=0;
}else{
a[1][++top]=po;
po=0;
}
}
}
z=a[2][1];
/*
for(int i=1;i<=top;i++){
cout<<a[1][i]<<" "<<a[2][i]<<"\n";
}
*/
for(int i=2;i<=top;i++){
z=gcdd(z,a[2][i]);
}
/*
for(int i=1;i<=top;i++){
cout<<q[i]<<"\n";
}
*/
for(int i=1;i<=top;i++){
if(q[i]==0){
sum-=a[1][i]*(z/a[2][i]);
}else{
sum+=a[1][i]*(z/a[2][i]);
}
}
if(sum%z){
if(sum<0){
cout<<'-';
sum=abs(sum);
}
n=gcd(sum,z);
if(n==1){
printf("%lld/%lld",sum,z);
}else{
printf("%lld/%lld",sum/n,z/n);
}
return 0;
}
n=gcd(sum,z);
if(n==1){
printf("%lld",sum);
}else{
printf("%lld",sum/n);
}
return 0;
}
```
by Linyize257 @ 2022-04-14 19:59:37