# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1191402 | SmuggingSpun | Sateliti (COCI20_satellti) | C++20 | 12 ms | 328 KiB |
#include<bits/stdc++.h>
#define taskname "C"
using namespace std;
template<class T>void minimize(T& a, T b){
if(a > b){
a = b;
}
}
int n, m;
namespace sub1{
void solve(){
vector<string>a(n);
for(string& s : a){
cin >> s;
}
vector<string>ans = a;
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
vector<string>b;
for(int k = i; k < n; k++){
b.emplace_back(a[k].substr(j, m - j) + a[k].substr(0, j));
}
for(int k = 0; k < i; k++){
b.emplace_back(a[k].substr(j, m - j) + a[k].substr(0, j));
}
minimize(ans, b);
}
}
for(string& s : ans){
cout << s << "\n";
}
}
}
namespace sub23{
int min_cyclic(vector<int>a){
for(int n = a.size(), i = 0; i < n; i++){
a.emplace_back(a[i]);
}
int n = a.size(), i = 0, ans = 0;
while(i < (n >> 1)){
int j = (ans = i) + 1, k = i;
while(j < n && a[k] <= a[i]){
if(a[j] == a[k]){
k++;
}
else{
k = i;
}
j++;
}
while(i <= k){
i += j - k;
}
}
return ans;
}
void solve(){
}
}
int main(){
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
if(fopen(taskname".inp", "r")){
freopen(taskname".inp", "r", stdin);
}
cin >> n >> m;
if(max(n, m) <= 50){
sub1::solve();
}
else{
sub23::solve();
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |