3 条题解
-
2
#include<bits/stdc++.h> using namespace std; int main() { int n,k,c=1,flag=1,p=0,f1=1,sum=0; string b; cin>>n; k=n-1; int a[n]; for(int i=0;i<n;i++) { cin>>a[i]; } cin>>p; cout<<p; while(k!=0) { f1=1; for(int i=n-1;i>0;i--) { flag=1; if(a[i-1]>a[i]) { swap(a[i],a[i-1]); f1=0; if(i==p&&flag==1) {cout<<"→"<<i-1; b+=i-1+'0'; p=i-1; flag=0; sum+=2; } if(i-1==p&&flag==1) { // cout<<i<<endl; b+=i+'0'; cout<<"→"<<i; p=i; flag=0; sum+=2; } // for(int i=0;i<n;i++) // cout<<a[i]<<" "; // cout<<endl; } } k--; // if(f1==1)break; } // cout<<b<<endl; // for(int i=0;i<=sum+1;i++) // cout<<b[i]; } //1 2 2 4 4 7 7 9
-
1
简单易懂[大拇指]
注意,箭头不是“->”,是“→”
着实被恶心到了n = int(input()) num = list(map(int,input().split())) p = int(input()) s = str(p)+"→" for i in range(n): flag = True for j in range(n-1,i,-1): if num[j] < num[j-1]: num[j-1],num[j] = num[j],num[j-1] flag = False if j == p: p-=1 s = s+str(p)+"→" elif j-1 == p: p+=1 s = s+str(p)+"→" if flag: break print(s[:-1])
-
-2
水题
#include<bits/stdc++.h> using namespace std; int main() { int n; cin >>n; int a[n]; for(int i=0; i<n; i++){ cin >>a[i]; } int k; cin >>k; cout<<k; for(int i=0; i<n; i++){ for(int j=n-1; j>i; j--){ int l=0; if(a[j]<a[j-1]){ if(j==k){ cout<<"→"<<j-1; l++; } if(j-1==k){ cout<<"→"<<j; l--; } if(l>0){k--;} if(l<0){k++;} swap(a[j],a[j-1]); } } } return 0; }
- 1
信息
- ID
- 754
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 798
- 已通过
- 332
- 上传者