Untitled
unknown
plain_text
a year ago
2.0 kB
9
Indexable
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <random>
using namespace std;
using namespace __gnu_pbds;
typedef long long ll;
typedef unsigned long long ull;
typedef tree<int, null_type, less<>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
#define AboTaha_on_da_code ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define X first
#define Y second
const int dx[8]={0, 0, 1, -1, 1, -1, -1, 1};
const int dy[8]={1, -1, 0, 0, 1, -1, 1, -1};
const double EPS = 1e-8;
const int mod = 998244353; // 1e9+7, 998244353
const int phi = 1e9+6; // 1e9+7, 998244353
// BEFORE coding are you sure you understood the statement correctly?
// PLEASE do not forget to read the sample explanation carefully.
// WATCH out for overflows & RTs in general.
// TEST your idea or code on the corner cases.
// ANALYZE each idea you have thoroughly.
void burn(int tc) {
int n; cin >> n;
string s; cin >> s;
if (n < 2) return void (cout << "0 0");
bool forw = false, back = false, sw = false;
for (int i = 1; i < n-1; i++) {
if (s[i] > s[n-1]) {
forw = true;
swap(s[i], s[n-1]);
}
}
for (int i = 1; i < n-1; i++) {
if (s[i] > s[0]) {
back = true;
swap(s[i], s[0]);
}
}
if (s[0] > s[n-1]) {
sw = true;
swap(s[0], s[n-1]);
}
int ans = (s[0]-'0')*10+(s[n-1]-'0');
for (int i = 1; i < n-1; i++) {
ans+=(s[i]-'0')*11;
}
cout << forw+back+sw << ' ' << ans;
}
int main()
{
AboTaha_on_da_code
// freopen("cheat.in", "r", stdin);
// freopen("output.txt", "w", stdout);
int T = 1; cin >> T;
for (int i = 1; i <= T; i++) {
// cout << "Case " << i << ": ";
burn(i);
cout << '\n';
}
return (0-0);
}Editor is loading...
Leave a Comment