UPC題解訓練4A-F
阿新 • • 發佈:2021-01-12
題解
F
假設每一個點為ai,每個人的蛋糕為x
把每個點ai放在數軸上,不難發現,|ai-x|為x到ai的距離。任取兩個值ai,aj,發現x只要是
ai到aj上的任意一個點即可。
答案就是若干對aj-ai求和。
int a[N]; int main() { int n; cin>>n; for(int i = 0;i < n;i++) cin>>a[i]; sort(a,a+n); int sum = 0; for(int i = 0,j = n-1;i < j;i++,j--){ sum += a[j]-a[i]; } cout<<sum<<endl; return 0; }
E
純粹的模擬就行了,記得四捨五入。
priority_queue<int> Q; int main() { int n,m; cin>>m>>n; int tall[15][15]; int sum[15] = {0},tmax[15] = {0}; for(int i = 1;i <= m;i++){ for(int j = 1;j <= n;j++){ cin>>tall[i][j]; sum[i]+=tall[i][j]; tmax[i] = max(tall[i][j],tmax[i]); if(tall[i][j] > 165) Q.push(tall[i][j]); } } for(int i = 1;i <= m;i++) cout<<tmax[i]<<endl; for(int i = 1;i <= m;i++) { cout <<(int) (sum[i] * 1.0 / n +0.5)<< endl; } while(!Q.empty()){ cout<<Q.top()<<' '; Q.pop(); } return 0; }
D
列舉就行了
bool is_prime(int x){ for(int i = 2;i < x;i++){ if(x%i == 0) return false; } return true; } bool is_sq(int x){ return x == (int)sqrt(x) * (int)sqrt(x); } int main() { int a,b; cin>>a>>b; int cnt = 0; bool flag = false; for(int i = a; i <= b;i++){ if(is_prime(i/100) && is_sq(i%100) && i%6 == 0){ if(flag)cout<<' '; flag = true; cout<<i; cnt++; } } cout<<endl<<cnt<<endl; return 0; }
C
直接上程式碼把.
int main()
{
char str[30];
int i,count = 0;
gets(str);
if(strlen(str) >= 8&&strlen(str) <= 30)
{
for(i=0;i<strlen(str);i++)
{
if((str[i]>='0'&&str[i]<='9'))
{
count++;
continue;
}
else
cout<<str[i];
}
}
cout<<"\n"<<count;
}
B
把後面兩個字母,交換到前面
int main() {
char a[N];
cin>>a;
int len = strlen(a);
int t = len;
cout<<a<<endl;
while(t>1){
t--;
for(int i = len-1;i >= 2;i--){
//cout<<a[i-3]<<a[i-2]<<a[i-1]<<a[i]<<endl;
swap(a[i-1],a[i-2]);
swap(a[i],a[i-1]);
}
cout<<a<<endl;
}
return 0;
}
A
int main()
{
double x,y;
cin>>x;
if(x >= 1 && x <= 15)
y = x*6;
else if(x > 15&&x <= 100)
y = 6*15+(x-15)*9;
cout<<round(y)<<endl;
}