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.
#include<bits/stdc++.h>
using namespace std;
int main() {
int T, n;
cin>>T;
for(int t=0;t<T;t++){
int n,k,a,i;
cin>>n>>k;
int a[n];
for(int i=0;i<n;i++){
cin>>a[i];
}
int ans=0;
int c=0;
int sum=0;
int c0=0;
int c1=0;
int c2=0;
for(int i=0;i<n;i++){
sum+=a[i];
}
for(int i=0;i<n;i++){
if(sum<k && i!=0){
sum+=a[i]-1;
}
}
for(int i=0;i<n-1;i++){
for(int j=i+1;j<n;j++){
int sum=0;
for(int l=i;l<j;l++){
sum+=a[l];
}
if(sum==k){
c0=i;
c1=j;
}
}
}
printf("Case %d : %d - %d (c0,c1)\n",t+1,c*n+c0,c*n+c1);
++c;
}
return 0;
}
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, k;
cin >> n >> k;
int ai[n];
for (int i = 0; i < n; i++) {
cin >> ai[i];
}
vector<int> pairs(n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i == j) continue;
if (ai[i] + ai[j] == k) {
pairs.push_back(make_pair(i, j));
}
}
}
sort(pairs.begin(), pairs.end());
int count = 0;
pairs.erase(pairs.begin(), pairs.end());
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (pairs[i].first == i && pairs[i].second == j) {
count++;
break;
}
}
if (count == n) {
break;
}
if (pairs[i].second == j) {
while (pairs[i].first != i) {
i++;
count++;
pairs.erase(pairs.begin() + i);
for (int j = 0; j < n; j++) {
if (ai[j] + ai[i] == k) {
pairs.push_back(make_pair(j, i+1));
break;
}
}
for (int j = 1;; j++) {
int count_n = 0, count_s = 0;
for (int i = j-1; i >= 0; i--) {
if (pairs[i].second == j) {
j++;
count_n++;
pairs.erase(pairs.begin() + i + 1);
pairs.er
Để giải bài toán này, ta có thể sử dụng vòng lặp để thử từng trường hợp cho số tiền mà bạn tiêu để nâng trình độ của Tí. Ta sẽ thử từ 0 đến K đồng, và kiểm tra xem có tồn tại số tiền mà Tí đã được tiêu để trình độ của Tí và Tèo bằng nhau hay không.
Dưới đây là một ví dụ code Python để giải bài toán này:
def calculate_money(A, B, K, X, Y): for money in range(K+1): # Tí nâng trình độ lên X new_A = A + X * money # Tèo nâng trình độ lên Y new_B = B + Y * money # Nếu trình độ của Tí và Tèo bằng nhau if new_A == new_B: return money # Nếu không có cách để trình độ của Tí và Tèo bằng nhau return -1 # Đọc dữ liệu từ file input with open("TITEO.inp", "r") as file: A, B, K, X, Y = map(int, file.readline().split()) # Tính toán số tiền mà Tí đã được bạn tiêu để nâng trình độ cho Tí result = calculate_money(A, B, K, X, Y) # Ghi kết quả vào file output with open("TITEO.out", "w") as file: file.write(str(result))Bạn có thể thay đổi đường dẫn của file input và output theo nơi bạn lưu trữ file. Sau khi chạy code, kết quả sẽ được ghi vào file "TITEO.out". Nếu không có cách để trình độ của Tí và Tèo bằng nhau, kết quả sẽ là -1.
#include <iostream>
#include <vector>
using namespace std;
vector<int> solve(int d) {
vector<int> res(2, 0);
int p = 1;
while (d > 0) {
int digit = d % 10;
d /= 10;
if (digit == 4) {
res[0] += p * 3;
res[1] += p;
} else {
res[0] += p * digit;
}
p *= 10;
}
return res;
}
int main() {
int d;
cin >> d;
vector<int> res = solve(d);
cout << res[0] << " " << res[1] << endl;
return 0;
}