Lập trình C++.Có n viên bi được xếp thành một hàng ngang. Mỗi viên bi được sơn một trong haimàu xanh hoặc đỏ. Người ta muốn sơn lại màu xanh hoặc đỏ của một số viên bi (có thể sơnlại toàn bộ, hoặc có thể không sơn viên nào cả) sao cho sau khi sơn thì các viên bi màu xanhđều nằm bên trái các viên bi màu đỏ. Tất nhiên sau khi sơn có thể các viên bị chỉ toàn màu xanh hoặc toàn màu đỏ. Yêu cầu: Hãy tìm cách sơn lại ít viên bi nhất sao cho dãy bi sau khi sơn thỏa mãn các viên bi xanh đều nằm bên trái các viên bi đỏ.
Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
Thử code này như bạn
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}
int findGCD(const vector<int>& nums) {
int result = nums[0];
for (int num : nums) {
result = gcd(result, num);
if(result == 1) {
return 1;
}
}
return result;
}
int main() {
int n;
cout << "Nhap so luong so nguyen: ";
cin >> n;
vector<int> nums(n);
cout << "Nhap " << n << " so nguyen:\n";
for (int i = 0; i < n; ++i) {
cin >> nums[i];
}
int gcd_of_nums = findGCD(nums);
ofstream outfile("TROCHOL.OUT");
if (gcd_of_nums == 1) {
outfile << -1;
} else {
for (int m = 2; m <= gcd_of_nums; ++m) {
if (gcd_of_nums % m == 0) {
outfile << m << " ";
}
}
}
outfile.close();
return 0;
}
Code với C++ language:
#include <bits/stdc++.h>
using namespace std;
int n;
set<long long> a;
long long tmp;
int main()
{
freopen("DAYSO.INP","r",stdin);
freopen("DAYSO.OUT","w",stdout);
cin>>n;
while(n--){
cin>>tmp;
a.insert(tmp);
}
if(a.size()==1){cout<<-1;return 0;}
cout<<*(--a.end());
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int n,c;
long long a[10000];
bool iscp(long long m){
return int(sqrt(m))*int(sqrt(m))==m;
}
int main()
{
cin>>n;
if(n==1){cout<<"0";return 0;}
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<n;i++){
for(int j=i+1;j<=n;j++){
if(a[i]<=a[j]&&iscp(a[i])&&iscp(a[j])){
c++;
}
}
}
cout<<c;
return 0;
}
#include <bits.stdc++.h>
using namespace std;
int main()
{
int A[100],n,i;
cin>>n;
for (int i=1; i<=n; i++)
cin>>A[i];
int x;
cin>>x;
int dem=0;
for (int i=1; i<=n; i++)
if (x==A[i]) dem++;
cout<<dem<<endl;
for (int i=1; i<=n; i++)
if (a[i]<x) cout<<a[i]<<" ";
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> a(n);
for(int i = 0; i < n; i++) cin >> a[i];
int count_red = 0, total_paint = 0;
for(int i = 0; i < n; i++) {
if(a[i] == 1) count_red++;
else total_paint += count_red;
}
cout << total_paint;
return 0;
}