Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
33722 | 武云帆 | 【S】T3 | C++ | 解答错误 | 10 | 880 MS | 565472 KB | 927 | 2024-10-20 15:38:00 |
#include<bits/stdc++.h> using namespace std; struct node{ int a,b; }; vector<int> s[500]; const int N=505; int a[N]; bool cmp(int x,int y){ return x>y; } void dfs(int x,int y){ for(int i=max(x,y);i>=1;i--){ int x1=x%i; int y1=y%i; //if(y1>x1) swap(x1,y1); s[x1].push_back(y1); dfs(x1,y1); } } int main(){ int n; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } //if(a[1]<a[2]) swap(a[1],a[2]); s[a[1]].push_back(a[2]); dfs(a[1],a[2]); int ans=0; for(int i=a[1];i>=0;i--){ if(s[i].size()==0) continue; //cout<<i<<" "; sort(s[i].begin(),s[i].end(),cmp); int p=-1; for(int j:s[i]){ if(j!=p){ ans++; //cout<<j<<" "; } p=j; } //cout<<endl; } cout<<ans<<endl; }