| Task: | Blocks |
| Sender: | MRiekasius |
| Submission time: | 2026-04-16 14:56:32 +0300 |
| Language: | C++ (C++20) |
| Status: | COMPILE ERROR |
Compiler report
input/code.cpp: In function 'std::pair<bool, std::vector<int> > dfs(std::vector<int>&, std::vector<int>&, int)':
input/code.cpp:6:22: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
6 | if(blokai.size() == n){
| ~~~~~~~~~~~~~~^~~~
input/code.cpp:7:33: error: 'k' was not declared in this scope
7 | vector<int> SpalvosSuma(k, 0), SpalvosKiekis(k, 0);
| ^
input/code.cpp:15:87: error: 'reikiamaReiksmeKartDu' was not declared in this scope
15 | if(sumaKartDu % SpalvosKiekis[i] != 0 || sumaKartDu / SpalvosKiekis[i] != reikiamaReiksmeKartDu){
| ^~~~~~~~~~~~~~~~~~~~~
input/code.cpp:21:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'...Code
#include <bits/stdc++.h>
using namespace std;
pair<bool, vector<int>> dfs(vector<int>& spalvuKiekiai, vector<int>& blokai, int n){
if(blokai.size() == n){
vector<int> SpalvosSuma(k, 0), SpalvosKiekis(k, 0);
bool buvoTink = true;
for(int i = 0; i < n; i++){
SpalvosSuma[blokai[i] - 1] += i + 1;
SpalvosKiekis[blokai[i] - 1]++;
}
for(int i = 0; i < k; i++){
const int sumaKartDu = SpalvosSuma[i] * 2;
if(sumaKartDu % SpalvosKiekis[i] != 0 || sumaKartDu / SpalvosKiekis[i] != reikiamaReiksmeKartDu){
buvoTink = false;
}
}
return {buvoTink, blokai};
}
for(int i = 0; i < spalvuKiekiai.size(); i++){
if(spalvuKiekiai[i] > 0){
spalvuKiekiai[i]--;
blokai.push_back(i);
auto ans = dfs(spalvuKiekiai, blokai, n);
if(ans.first == true) return ans;
blokai.pop_back();
spalvuKiekiai[i]++;
}
}
return {false, blokai};
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int t;
cin >> t;
while(t--){
int n, k;
cin >> n >> k;
vector<int> spalvuKiekiai(k);
vector<int> ans(n);
for(int i = 0; i < n; i++){
int x;
cin >> x;
spalvuKiekiai[x - 1]++;
}
vector<int> blokai;
auto ans = dfs(spalvuKiekiai, blokai, n);
if(ans.first == true){
cout << "YES\n";
for(auto i: ans.second) cout <<i << " ";
cout << "\n";
}
cout << "NO\n";
}
}
