結果

問題 No.1020 Reverse
ユーザー AndrewKAndrewK
提出日時 2020-04-13 15:25:48
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 8,591 bytes
コンパイル時間 1,647 ms
コンパイル使用メモリ 169,388 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-09-25 01:20:18
合計ジャッジ時間 2,776 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 7 WA * 8
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

/*
*
*
* https://www.youtube.com/channel/UCRXsI3FL_kvaVL9zoolBfbQ
*/
#include <bits/stdc++.h>
//#pragma GCC target("avx2")
//#pragma GCC optimize("O3")
//#pragma GCC optimize("unroll-loops")
#define f(i,n) for(int i=0;i<(n);i++)
#define inf (int)(3e18)
//here!!!
// define int long long !!!!!
#define int long long
// define int long long !!!!!
#define mod (int)((1e9)+7)
#define intt long long
#define itn long long
#define P pair<int,int>
#define rep(i,n) for(int i=0;i<n;i++)
#define REP(i,n) for(int i=1;i<=n;i++)
#define ALL(v) v.begin(),v.end()
using namespace std;
//Library
//
inline int modpow(int x, int y, int m = mod) {
int res = 1;
while (y) {
if (y % 2) {
res *= x;
res %= m;
}
x = x * x % m;
y /= 2;
}
return res;
}
int mypow(int x, int y) {
int res = 1;
while (y) {
if (y % 2) {
res *= x;
}
x = x * x;
y /= 2;
}
return res;
}
//is the number (x) a prime number?
bool prime(int x) {
for (int i = 2; i * i <= x; i++) {
if (!(x % i)) {
return false;
}
}
return true;
}
//saidai-kouyakusuu
inline int gcd(int x, int y) {
if (!y) {
return x;
}
return gcd(y, x % y);
}
//number of keta
int keta(int x) {
int ans = 0;
while (x) {
x /= 10;
ans++;
}
return ans;
}
//sum of keta
int ketasum(int x) {
int ans = 0;
while (x) {
ans += x % 10;
x /= 10;
}
return ans;
}
inline int lcm(int x, int y) {
int ans = x / gcd(x, y) * y;
return ans;
}
int twobeki(int x) {
int ans = 0;
while (1) {
if (!(x & 1)) {
ans++;
x /= 2;
}
else {
break;
}
}
return ans;
}
template <class T, class U>
inline bool chmax(T& lhs, const U& rhs) {
if (lhs < rhs) {
lhs = rhs;
return 1;
}
return 0;
}
template <class T, class U>
inline bool chmin(T& lhs, const U& rhs) {
if (lhs > rhs) {
lhs = rhs;
return 1;
}
return 0;
}
void Yes(){
cout<<"Yes"<<endl;
}
void No(){
cout<<"No"<<endl;
}
void YES(){
cout<<"YES"<<endl;
}
void NO(){
cout<<"NO"<<endl;
}
#define fin(i) scanf("%lld",&i)
#define fout(i) printf("%lld",i)
#define fendl printf("\n")
int kai(int x, int y) {
int res = 1;
for (int i = x - y + 1; i <= x; i++) {
res *= i; res %= mod;
}
return res;
}
int comb(int x, int y) {
if (y > x)return 0;
// cout<<kai(x, y)<<' '<<modpow(kai(y, y), mod - 2)<<endl;
return kai(x, y) * modpow(kai(y, y), mod - 2) % mod;
}
//Library-End
class modInt {
int value, modulo;
public:
modInt() : value(0), modulo(mod) { value = 0; }
template<typename T>
modInt(T value = 0, int modulo = mod) : value(value), modulo(modulo) {
if (value < 0) {
value = -value;
value %= modulo;
value = -value;
value += modulo;
}
this->value = value % modulo;
}
inline operator int()const { return value; }
inline modInt& operator+=(modInt x) {
value += x.value;
if (value >= modulo)value -= modulo;
return *this;
}
inline modInt& operator++() {
if (value == modulo - 1)value = 0;
else value++;
return *this;
}
inline modInt& operator-()const {
return modInt(0) -= *this;
}
inline modInt& operator-=(modInt x) {
value -= x.value;
if (value < 0)value += modulo;
return *this;
}
inline modInt& operator--() {
if (value == 0)value = modulo - 1;
else value--;
return *this;
}
inline modInt& operator*=(modInt x) {
value = value * x.value % modulo;
return *this;
}
inline modInt& operator/=(modInt x) {
return operator*=(x.inv());
}
inline modInt inv() {
return modpow(*this, modulo - 2);
}
template<typename T> modInt operator+(T x) { return modInt(*this) += x; }
template<typename T> modInt& operator+=(T x) { return operator+=(modInt(x, modulo)); }
template<typename T> modInt operator-(T x) { return modInt(*this) -= x; }
template<typename T> modInt& operator-=(T x) { return operator-=(modInt(x, modulo)); }
template<typename T> modInt operator*(T x) { return modInt(*this) *= x; }
template<typename T> modInt& operator*=(T x) { return operator*=(modInt(x, modulo)); }
template<typename T> modInt operator/(T x) { return modInt(*this) /= x; }
template<typename T> modInt& operator/=(T x) { return operator/=(modInt(x, modulo)); }
};
istream& operator>>(istream& ist, modInt& x) {
int a;
ist >> a;
x = a;
return ist;
}
#define vecin(v) for(int i=0;i<v.size();i++)scanf("%lld",&v[i]);
#define vecout(v) {for(int i=0;i<v.size();i++)printf("%lld\n",v[i]);}
#define endl "\n" //interactive
//SegTree
template <class T>
class SegTree {
int n; //
vector<T> data; // vector
T def; //
function<T(T, T)> operation; // 使
function<T(T, T)> update; // 使
// [a,b)k=[l,r)
T _query(int a, int b, int k, int l, int r) {
if (r <= a || b <= l) return def; //
if (a <= l && r <= b)
return data[k]; // a,l,r,b
else {
T c1 = _query(a, b, 2 * k + 1, l, (l + r) / 2); //
T c2 = _query(a, b, 2 * k + 2, (l + r) / 2, r); //
return operation(c1, c2);
}
}
public:
// _n:, _def:, _operation:,
// _update:
SegTree(size_t _n, T _def, function<T(T, T)> _operation,
function<T(T, T)> _update)
: def(_def), operation(_operation), update(_update) {
n = 1;
while (n < _n) {
n *= 2;
}
data = vector<T>(2 * n - 1, def);
}
// i(0-indexed)x
void change(int i, T x) {
i += n - 1;
data[i] = update(data[i], x);
while (i > 0) {
i = (i - 1) / 2;
data[i] = operation(data[i * 2 + 1], data[i * 2 + 2]);
}
}
// [a, b)
T query(int a, int b) {
return _query(a, b, 0, 0, n);
}
//
T operator[](int i) {
return data[i + n - 1];
}
};
#define R_MIN ([](long long a, long long b) { return min(a, b); })
#define R_MAX ([](long long a, long long b) { return max(a, b); })
#define R_SUM ([](long long a, long long b) { return a + b; })
#define NORMAL_UPDATE ([](long long a, long long b) { return b; })
#define ADD_UPDATE ([](long long a, long long b) { return a + b; })
#define MINUS_UPDATE ([](long long a, long long b) { return a - b; }
class Union_Find {
vector<int> par;
vector<int> rankmy;
vector<int> ookisa;
public:
Union_Find(int size) {
par = vector<int>(size);
rankmy = vector<int>(size);
ookisa=vector<int>(size);
for (int i = 0; i < size; i++) {
par[i] = i;
ookisa[i]=1;
}
}
int find(int x) {
if (par[x] == x) {
return x;
}
return par[x] = find(par[x]);
}
void unite(int x, int y) {
x = find(x);
y = find(y);
if (x == y) {
return;
}
if (rankmy[x] < rankmy[y]) {
par[x] = y;
ookisa[y]+=ookisa[x];
ookisa[x]=0;
}
else {
par[y] = x;
ookisa[x]+=ookisa[y];
ookisa[y]=0;
if (rankmy[x] == rankmy[y]) {
rankmy[x]++;
}
}
}
int size(int i){
i=find(i);
return ookisa[i];
}
bool same(int x, int y) {
return find(x) == find(y);
}
};
//Union-Find-End
int n,k;string s;
signed main(){
ios::sync_with_stdio(false);
std::cin.tie(nullptr);
cin>>n>>k>>s;
for (int i=k-1; i<n; i++) {
cout<<s[i];
}
for (int i=0; i<k-1; i++) {
cout<<s[i];
}
cout<<endl;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0