QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#376285 | #4567. Admissible Map | InfinityNS | TL | 1691ms | 479804kb | C++23 | 4.4kb | 2024-04-04 02:01:13 | 2024-04-04 02:01:14 |
Judging History
answer
#include<bits/stdc++.h>
#define sz(x) (int)(x).size()
#define f first
#define s second
#define pb push_back
#define ll long long
#define all(x) (x).begin(),(x).end()
using namespace std;
// 19:33
const int N=20001;
bool moze[N][N];
int visited[N];
bool inc[N];
int nxt[N];
int need[N];
bool mid[N][N],up[N][N],down[N][N];
int dfs(int tr){
if(nxt[tr]==-1){
inc[tr]=0;
visited[tr]=1;
return -1;
}
if(visited[nxt[tr]]==1){
inc[tr]=0;
visited[tr]=1;
return -1;
}
if(visited[nxt[tr]]==2){
inc[tr]=1;
visited[tr]=1;
return nxt[tr];
}
visited[tr]=2;
int r=dfs(nxt[tr]);
visited[tr]=1;
if(r==-1){
inc[tr]=0;
return -1;
}
else{
inc[tr]=1;
if(tr==r)return -1;
return r;
}
}
int main(){
string s;
cin >> s;
int n=sz(s);
for(int i=0;i<n;i++){
for(int j=i;j<n;j++){
mid[i][j]=s[i]!='L'&&s[j]!='R';
up[i][j]=s[j]!='U';
down[i][j]=s[j]!='D';
if(i!=j){
up[i][j]=up[i][j]&&up[i][j-1];
down[i][j]=down[i][j]&&down[i][j-1];
}
}
}
vector<pair<int,int>> its;
for(int len=1;len<=n;len++){
for(int i=0;i<n;i++){
inc[i]=0;
visited[i]=0;
if(s[i]=='L'){
nxt[i]=i-1;
}
if(s[i]=='R'){
nxt[i]=i==n-1?-1:i+1;
}
if(s[i]=='U'){
nxt[i]=i<len?-1:i-len;
}
if(s[i]=='D'){
nxt[i]=i>=n-len?-1:i+len;
}
need[i]=0;
}
for(int i=0;i<n;i++){
if(!visited[i]){
dfs(i);
}
if(nxt[i]==-1||!inc[i]){
need[i]=-1;
}
if(need[i]==-1)continue;
if(nxt[i]>i){
need[i]=max(need[i],nxt[i]);
}
else{
need[nxt[i]]=max(need[nxt[i]],i);
}
}
its.clear();
int r=0;
int lst=0;
for(int i=0;i<n;i++){
if(need[i]==-1){
lst=i+1;
r=i+1;
continue;
}
r=max(r,need[i]);
if(r==i){
its.pb({lst,r});
lst=i+1;
r=i+1;
}
}
for(int i=0;i<sz(its);i++){
int tr=its[i].f;
bool ok=up[tr][tr+len-1]&&mid[tr][tr+len-1];
tr+=len;
for(int j=i;ok&&j<sz(its);j++){
int en=its[j].s;
while(tr+len-1<=en){
if(!mid[tr][tr+len-1]){
ok=0;
break;
}
tr+=len;
}
if(!ok)break;
if(en+1==tr&&down[tr-len][tr-1]){
moze[its[i].f][its[j].s]=1;
}
if(j==sz(its)-1)continue;
if(its[j+1].f!=its[j].s+1)break;
}
}
/*printf("%i:\n",len);
for(auto p:its){
printf("%i - %i\n",p.f,p.s);
}*/
}
int ans=0;
for(int i=0;i<n;i++)for(int j=i;j<n;j++)ans+=moze[i][j];
printf("%i\n",ans);
}
/*
bool mid[N][N],up[N][N],down[N][N];
bool moze[N];
int main(){
string s;
cin >> s;
int n=sz(s);
for(int i=0;i<n;i++){
for(int j=i;j<n;j++){
mid[i][j]=s[i]!='L'&&s[j]!='R';
up[i][j]=s[j]!='U';
down[i][j]=s[j]!='D';
if(i!=j){
up[i][j]=up[i][j]&&up[i][j-1];
down[i][j]=down[i][j]&&down[i][j-1];
}
}
}
int ans=0;
for(int i=0;i<n;i++){
for(int j=0;j<i;j++)moze[j]=0;
for(int len=0;len<=i;len++){
if(mid[i-len][i]&&down[i-len][i]){
int tr=i;
while(tr-len>=0){
if(!mid[tr-len][tr])break;
if(up[tr-len][tr]&&!moze[tr-len]){
moze[tr-len]=1;
ans++;
printf("%i %i\n",tr-len,i);
}
tr=tr-len-1;
}
}
}
}
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 11932kb
input:
RDUL
output:
2
result:
ok 1 number(s): "2"
Test #2:
score: 0
Accepted
time: 1ms
memory: 9872kb
input:
RDRU
output:
0
result:
ok 1 number(s): "0"
Test #3:
score: 0
Accepted
time: 1ms
memory: 10128kb
input:
RLRLRL
output:
6
result:
ok 1 number(s): "6"
Test #4:
score: 0
Accepted
time: 0ms
memory: 9876kb
input:
D
output:
0
result:
ok 1 number(s): "0"
Test #5:
score: 0
Accepted
time: 1ms
memory: 9860kb
input:
DL
output:
0
result:
ok 1 number(s): "0"
Test #6:
score: 0
Accepted
time: 0ms
memory: 9948kb
input:
RL
output:
1
result:
ok 1 number(s): "1"
Test #7:
score: 0
Accepted
time: 1ms
memory: 12272kb
input:
DU
output:
1
result:
ok 1 number(s): "1"
Test #8:
score: 0
Accepted
time: 1ms
memory: 9900kb
input:
RDULU
output:
2
result:
ok 1 number(s): "2"
Test #9:
score: 0
Accepted
time: 1ms
memory: 9848kb
input:
RDDUULRDDD
output:
2
result:
ok 1 number(s): "2"
Test #10:
score: 0
Accepted
time: 1ms
memory: 9892kb
input:
RLRLRLRLRL
output:
15
result:
ok 1 number(s): "15"
Test #11:
score: 0
Accepted
time: 1ms
memory: 12000kb
input:
DUDUDUDUDU
output:
15
result:
ok 1 number(s): "15"
Test #12:
score: 0
Accepted
time: 1ms
memory: 11940kb
input:
RDRDULULRR
output:
3
result:
ok 1 number(s): "3"
Test #13:
score: 0
Accepted
time: 0ms
memory: 12104kb
input:
UUURDRDRDLRULLRLULUDRURDRULLRU
output:
2
result:
ok 1 number(s): "2"
Test #14:
score: 0
Accepted
time: 2ms
memory: 14072kb
input:
RLRLRLRLRLRLRLRLRLRLRLRLRLRLRL
output:
120
result:
ok 1 number(s): "120"
Test #15:
score: 0
Accepted
time: 2ms
memory: 13980kb
input:
DUDUDUDUDUDUDUDUDUDUDUDUDUDUDU
output:
120
result:
ok 1 number(s): "120"
Test #16:
score: 0
Accepted
time: 1ms
memory: 12084kb
input:
RDRDRDRDRDRDRDULULULULULULULDL
output:
8
result:
ok 1 number(s): "8"
Test #17:
score: 0
Accepted
time: 0ms
memory: 16568kb
input:
DLURRURRLDDUUDRDURDDLRLULLULDUULDDRDUURLLDDLRRLUDURLLRRRLLRLUDULDULUUDLLDLRLULDDURDDDLLUURRDRRDDRULU
output:
18
result:
ok 1 number(s): "18"
Test #18:
score: 0
Accepted
time: 2ms
memory: 18608kb
input:
RLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRL
output:
1275
result:
ok 1 number(s): "1275"
Test #19:
score: 0
Accepted
time: 2ms
memory: 18404kb
input:
DUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDU
output:
1275
result:
ok 1 number(s): "1275"
Test #20:
score: 0
Accepted
time: 0ms
memory: 16724kb
input:
RDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDULULULULULULULULULULULULULULULULULULULULULULULULUL
output:
26
result:
ok 1 number(s): "26"
Test #21:
score: 0
Accepted
time: 3ms
memory: 34528kb
input:
LRULLRUURRDUULDRULLLRLUDLDRUUURRDDRDLLDDRLUDLRLRRLRRUDUUULDDLUDUDRURUDLLRLDRLLDULRRURLDLDDDLUUUDRRUDRDURRRDLLDRDRRDULULRLLULULDLDLUURRRLRRUUUUDUUUULLURLUUDLURDUDDUDDURDDURRRLURDLUDDDDLRLDULRRRULLDDDDLLLDDLUDURDURLDDUDDRDLLULRRUDRRDRRRLUUULRLDDDDDDURRDULUDDDLDLLUDDUUDDDLLRDDRLRRLRDLDUDUDRULURRRULRLRD
output:
43
result:
ok 1 number(s): "43"
Test #22:
score: 0
Accepted
time: 3ms
memory: 32588kb
input:
RLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRL
output:
11325
result:
ok 1 number(s): "11325"
Test #23:
score: 0
Accepted
time: 6ms
memory: 34776kb
input:
DUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDU
output:
11325
result:
ok 1 number(s): "11325"
Test #24:
score: 0
Accepted
time: 5ms
memory: 30612kb
input:
RDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULULUL
output:
76
result:
ok 1 number(s): "76"
Test #25:
score: 0
Accepted
time: 18ms
memory: 88060kb
input:
LRRDDUUDLRLDLLRRDRLRDRLUDURURLLDURDLUDDRDLRLUULRLLDLRRRLDRRULRRULURRUDURRDLULLLDDRURLLURURLRRRRLURLURUUDRURDLLRUDDLULDLLRULRURDLRDUULURDULLLRLRDLRRUDUUUDUDLLRULRRRDRLLRRURRRRRLRDULDURRDLDULLURLLLURLRLDDRURULLDULULDRLDRLUUDDULLDRRDRURURDUUDDRDULRRUUDULULDDLRDURUUUURULLURRUDRURLUDLLUURRULRURDDRDRLUDUU...
output:
168
result:
ok 1 number(s): "168"
Test #26:
score: 0
Accepted
time: 66ms
memory: 87992kb
input:
RLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRL...
output:
125250
result:
ok 1 number(s): "125250"
Test #27:
score: 0
Accepted
time: 11ms
memory: 87976kb
input:
DUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDU...
output:
125250
result:
ok 1 number(s): "125250"
Test #28:
score: 0
Accepted
time: 4ms
memory: 77504kb
input:
RDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRD...
output:
251
result:
ok 1 number(s): "251"
Test #29:
score: 0
Accepted
time: 135ms
memory: 243648kb
input:
RDLRLLLLDDLDUUURUDUDUDUURURLRURLURLRLUULLRUDUURLDDRRDRUULDUURUDUUDLRLDUUUDRLLDRRDLLULDULRDURLLRLUDDRRLUDURRUUDULDLDLLDDUDURDLULRLLDRDRURUDLRDUDULLDUDDLRRRUDLLLRDLLRDDLDRDLRUUUUDRRDLDUUURDUUDUDDURUDRLDRRUURDUDDRRDDDULDRURDUURDUUDDRRDLRURRDUUDLDLRDULLLDDRLDRRLURLUUDRDDUDLDULDLRDDUUURRURURDUUDULULDDDRL...
output:
491
result:
ok 1 number(s): "491"
Test #30:
score: 0
Accepted
time: 1691ms
memory: 243876kb
input:
RLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRL...
output:
1125750
result:
ok 1 number(s): "1125750"
Test #31:
score: 0
Accepted
time: 59ms
memory: 243636kb
input:
DUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDUDU...
output:
1125750
result:
ok 1 number(s): "1125750"
Test #32:
score: 0
Accepted
time: 59ms
memory: 215568kb
input:
RDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRDRD...
output:
751
result:
ok 1 number(s): "751"
Test #33:
score: 0
Accepted
time: 614ms
memory: 479804kb
input:
LULDRUDLRRRRDRLRUUURDUUDLLUURDLRDRDDDURLUUDLRLRLUDRURDRRUDLRRLRURDDURURDRLULUULRDDLDLDLRLLLRLRRRLUDDLUDLDLURLUUDDDLLDUDLDRUULRLRUUDRDUUDLDLLDDLRUULRLUUDRRDLLLDLDUULLDDDLDRRRDDDDUUUULLLULRLLLLLDDDLLRDLDULDDDLRULRRDUULRLULRRDULDUULDURLRLDDLLLLRLLULDLRLDRRDLRULDRDDLDLUUUULUUDUDRDULUDRUDLUULRLRULULLUDRU...
output:
936
result:
ok 1 number(s): "936"
Test #34:
score: -100
Time Limit Exceeded
input:
RLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRL...