NC21781. 牛兄牛弟
描述
输入描述
第一行输入两个整数n,d
第二行输入n个数a[i]
1 ≤ n ≤ 1000, 1 ≤ d,a[i] ≤ 106
输出描述
输出n个数分别表示每一个牛的位置
示例1
输入:
4 10 1 21 11 7
输出:
1 21 11 31
示例2
输入:
4 11 1 21 11 7
输出:
1 21 32 43
示例3
输入:
4 1000000 1000000 1000000 1000000 1
输出:
1000000 2000000 3000000 4000000
Python3 解法, 执行用时: 201ms, 内存消耗: 4756K, 提交时间: 2023-01-10 16:02:20
n,d=map(int,input().split()) l=list(map(int,input().split())) ans=[] ans1=[] for i in l: if len(ans)==0: print(i,end=" ") ans.append(i) continue ans.sort() for j in ans: if i<j+d and i>j-d: i=j+d ans.append(i) print(i,end=" ")
C++(g++ 7.5.0) 解法, 执行用时: 19ms, 内存消耗: 456K, 提交时间: 2023-06-01 19:59:18
#include<iostream> #include<algorithm> using namespace std; int main() { int n,d; cin>>n>>d; int a[1001]; for(int i=0;i<n;i++) { cin>>a[i]; sort(a,a+i); for(int j=0;j<i;j++) if(abs(a[i]-a[j])<d) a[i]=a[j]+d; cout<<a[i]<<' '; } return 0; }
C++(clang++ 11.0.1) 解法, 执行用时: 21ms, 内存消耗: 452K, 提交时间: 2023-01-10 13:04:16
#include<bits/stdc++.h> using namespace std;int main(void){int n,d,i,j,a[1001];cin>>n>>d;for(int i=0;i<n;i++){cin>>a[i];sort(a,a+i);for(int j=0;j<i;j++) if(fabs(a[i]-a[j])<d) a[i]=a[j]+d;cout<<a[i]<<" ";} }