#include <bits/stdc++.h>
#define LL long long
#define SZ(x) ((int)(x).size())
#define ALL(x) (x).begin(),(x).end()
#define REP(i,n) for(int i=0;i<n;i++)
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define REV(i,n) for(int i=n-1;i>=0;i--)
#define pri(a) cout << a << endl;
using namespace std;
string gr[33];
int r,c;
void DFS(int i, int j)
{
if(i<0 or j<0 or i==r or j==c or (gr[i][j] != ' ' and gr[i][j] != '*')) return ;
gr[i][j] = '#';
DFS(i-1,j);
DFS(i-1,j+1);
DFS(i-1,j-1);
DFS(i,j+1);
DFS(i,j-1);
DFS(i+1,j);
DFS(i+1,j+1);
DFS(i+1,j-1);
}
int main()
{
int T;
cin>>T;
getchar();
while(T--)
{
int idx = 0, mx = -1;
while(getline(cin,gr[idx++]) and gr[idx-1][0] != '_')
{
mx = max(mx,SZ(gr[idx-1]));
}
r = idx;
c = mx;
REP(i,r)
{
REP(j,c)
{
if(gr[i][j] == '*')
{
DFS(i,j);
}
}
}
REP(i,r) cout << gr[i] << "\n";
}
return 0;
}
/*
2
XXXXXXXXX
X X X
X * X
X X X
XXXXXXXXX
X X
X X
X X
XXXXX
_____
XXXXX
X X
X * X
X X
XXXXX
_____
*/
~Be glad of life because it gives you the chance to love and to work and to play and to look at the stars.~
Tuesday, April 19, 2016
UVa 10336 - Rank The Languages
// aarifshuvo ``CSEJU
#include <bits/stdc++.h>
#define ll long long
#define SZ(x) ((int)(x).size())
#define scl(x) scanf("%lld", &x)
#define scll(x,y) scanf("%lld %lld", &x, &y)
#define ALL(x) (x).begin(),(x).end()
#define REP(i,n) for(int i=0;i<n;i++)
#define REV(i,n) for(int i=n-1;i>=0;i--)
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define pri(a) cout<<a<<endl
#define prii(a,b) cout<<a<<" "<<b<<endl
using namespace std;
ll t,r,c;
string sa[100007];
struct DT
{
int freq;
char letter;
}arr[30];
int cnt[27],id;
char ch;
bool cmp(DT a, DT b)
{
if(a.freq!=b.freq) return a.freq>b.freq;
else return a.letter<b.letter;
}
void dfs(int i, int j)
{
if(i<0 or j<0 or i==r or j==c or sa[i][j]=='@') return;
if(ch==sa[i][j])
sa[i][j]='@';
else return;
dfs(i,j+1);
dfs(i,j-1);
dfs(i-1,j);
dfs(i+1,j);
}
int main()
{
scl(t);
FOR(cs,1,t)
{
memset(cnt,0,sizeof cnt);
scll(r,c);
REP(i,r) cin>>sa[i];
REP(i,r)
{
REP(j,c)
{
if(sa[i][j]!='@')
{
cnt[sa[i][j]-'a']++;
ch = sa[i][j];
dfs(i,j);
}
}
}
int id=0;
REP(i,26)
{
if(cnt[i]) arr[id].letter= i+'a', arr[id].freq=cnt[i], id++;
}
sort(arr,arr+id,cmp);
printf("World #%d\n", cs);
REP(i,id)
{
printf("%c: %d\n", arr[i].letter, arr[i].freq);
}
}
return 0;
}
#include <bits/stdc++.h>
#define ll long long
#define SZ(x) ((int)(x).size())
#define scl(x) scanf("%lld", &x)
#define scll(x,y) scanf("%lld %lld", &x, &y)
#define ALL(x) (x).begin(),(x).end()
#define REP(i,n) for(int i=0;i<n;i++)
#define REV(i,n) for(int i=n-1;i>=0;i--)
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define pri(a) cout<<a<<endl
#define prii(a,b) cout<<a<<" "<<b<<endl
using namespace std;
ll t,r,c;
string sa[100007];
struct DT
{
int freq;
char letter;
}arr[30];
int cnt[27],id;
char ch;
bool cmp(DT a, DT b)
{
if(a.freq!=b.freq) return a.freq>b.freq;
else return a.letter<b.letter;
}
void dfs(int i, int j)
{
if(i<0 or j<0 or i==r or j==c or sa[i][j]=='@') return;
if(ch==sa[i][j])
sa[i][j]='@';
else return;
dfs(i,j+1);
dfs(i,j-1);
dfs(i-1,j);
dfs(i+1,j);
}
int main()
{
scl(t);
FOR(cs,1,t)
{
memset(cnt,0,sizeof cnt);
scll(r,c);
REP(i,r) cin>>sa[i];
REP(i,r)
{
REP(j,c)
{
if(sa[i][j]!='@')
{
cnt[sa[i][j]-'a']++;
ch = sa[i][j];
dfs(i,j);
}
}
}
int id=0;
REP(i,26)
{
if(cnt[i]) arr[id].letter= i+'a', arr[id].freq=cnt[i], id++;
}
sort(arr,arr+id,cmp);
printf("World #%d\n", cs);
REP(i,id)
{
printf("%c: %d\n", arr[i].letter, arr[i].freq);
}
}
return 0;
}
UVa 10062 - Tell Me The Frequencies
#include <bits/stdc++.h>
#define LL long long
#define SZ(x) ((int)(x).size())
#define ALL(x) (x).begin(),(x).end()
#define REP(i,n) for(int i=0;i<n;i++)
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define REV(i,n) for(int i=n-1;i>=0;i--)
#define pri(a) cout << a << endl;
using namespace std;
struct DT
{
int asci;
int freq;
}data[500];
bool cmp(DT a, DT b)
{
if(a.freq < b.freq) return true;
else if(a.freq == b.freq and a.asci > b.asci) return true;
return false;
}
int val[500];
int main()
{
string s;
int f = 0;
while(getline(cin,s))
{
memset(val, 0 , sizeof val);
REP(i,SZ(s))
{
val[ s[i] ]++;
}
int idx = 0;
REP(i,500)
{
if(val[i])
{
data[idx].asci = i;
data[idx].freq = val[i];
idx++;
}
}
sort(data,data+idx,cmp);
if(f) puts("");
f++;
REP(i,idx)
{
cout << data[i].asci << " " << data[i].freq << "\n";
}
}
return 0;
}
#define LL long long
#define SZ(x) ((int)(x).size())
#define ALL(x) (x).begin(),(x).end()
#define REP(i,n) for(int i=0;i<n;i++)
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define REV(i,n) for(int i=n-1;i>=0;i--)
#define pri(a) cout << a << endl;
using namespace std;
struct DT
{
int asci;
int freq;
}data[500];
bool cmp(DT a, DT b)
{
if(a.freq < b.freq) return true;
else if(a.freq == b.freq and a.asci > b.asci) return true;
return false;
}
int val[500];
int main()
{
string s;
int f = 0;
while(getline(cin,s))
{
memset(val, 0 , sizeof val);
REP(i,SZ(s))
{
val[ s[i] ]++;
}
int idx = 0;
REP(i,500)
{
if(val[i])
{
data[idx].asci = i;
data[idx].freq = val[i];
idx++;
}
}
sort(data,data+idx,cmp);
if(f) puts("");
f++;
REP(i,idx)
{
cout << data[i].asci << " " << data[i].freq << "\n";
}
}
return 0;
}
UVa 572 - Oil Deposits
#include <bits/stdc++.h>
#define LL long long
#define SZ(x) ((int)(x).size())
#define ALL(x) (x).begin(),(x).end()
#define REP(i,n) for(int i=0;i<n;i++)
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define REV(i,n) for(int i=n-1;i>=0;i--)
#define pri(a) cout << a << endl;
using namespace std;
char gr[105][105];
int r,c;
void DFS(int i, int j)
{
if(i < 0 or j < 0 or i == r or j == c or gr[i][j] != '@') return;
gr[i][j] = '*';
DFS(i-1,j);
DFS(i-1,j+1);
DFS(i-1,j-1);
DFS(i,j+1);
DFS(i,j-1);
DFS(i+1,j);
DFS(i+1,j+1);
DFS(i+1,j-1);
return;
}
int main()
{
while(cin>>r>>c and r+c)
{
REP(i,r) cin>>gr[i];
int cnt = 0;
REP(i,r)
{
REP(j,c)
{
if(gr[i][j] == '@')
{
cnt++;
DFS(i,j);
}
}
}
cout << cnt << "\n";
}
return 0;
}
#define LL long long
#define SZ(x) ((int)(x).size())
#define ALL(x) (x).begin(),(x).end()
#define REP(i,n) for(int i=0;i<n;i++)
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define REV(i,n) for(int i=n-1;i>=0;i--)
#define pri(a) cout << a << endl;
using namespace std;
char gr[105][105];
int r,c;
void DFS(int i, int j)
{
if(i < 0 or j < 0 or i == r or j == c or gr[i][j] != '@') return;
gr[i][j] = '*';
DFS(i-1,j);
DFS(i-1,j+1);
DFS(i-1,j-1);
DFS(i,j+1);
DFS(i,j-1);
DFS(i+1,j);
DFS(i+1,j+1);
DFS(i+1,j-1);
return;
}
int main()
{
while(cin>>r>>c and r+c)
{
REP(i,r) cin>>gr[i];
int cnt = 0;
REP(i,r)
{
REP(j,c)
{
if(gr[i][j] == '@')
{
cnt++;
DFS(i,j);
}
}
}
cout << cnt << "\n";
}
return 0;
}
UVa 11244 - Counting Stars
#include <bits/stdc++.h>
#define LL long long
#define SZ(x) ((int)(x).size())
#define ALL(x) (x).begin(),(x).end()
#define REP(i,n) for(int i=0;i<n;i++)
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define REV(i,n) for(int i=n-1;i>=0;i--)
#define pri(a) cout << a << endl;
using namespace std;
char gr[105][105];
int r,c,cnt;
void DFS(int i, int j)
{
if(i<0 or j<0 or i==r or j==c) return;
if(gr[i][j] != '*') return;
gr[i][j] = '#', cnt++;
DFS(i-1,j);
DFS(i-1,j+1);
DFS(i-1,j-1);
DFS(i+1,j);
DFS(i+1,j+1);
DFS(i+1,j-1);
DFS(i,j+1);
DFS(i,j-1);
return ;
}
int main()
{
while(cin>>r>>c and r+c)
{
REP(i,r) cin>>gr[i];
int res = 0;
REP(i,r)
{
REP(j,c)
{
cnt = 0;
if(gr[i][j] == '*')
{
DFS(i,j);
}
if(cnt==1) res++;
}
}
pri(res);
}
return 0;
}
#define LL long long
#define SZ(x) ((int)(x).size())
#define ALL(x) (x).begin(),(x).end()
#define REP(i,n) for(int i=0;i<n;i++)
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define REV(i,n) for(int i=n-1;i>=0;i--)
#define pri(a) cout << a << endl;
using namespace std;
char gr[105][105];
int r,c,cnt;
void DFS(int i, int j)
{
if(i<0 or j<0 or i==r or j==c) return;
if(gr[i][j] != '*') return;
gr[i][j] = '#', cnt++;
DFS(i-1,j);
DFS(i-1,j+1);
DFS(i-1,j-1);
DFS(i+1,j);
DFS(i+1,j+1);
DFS(i+1,j-1);
DFS(i,j+1);
DFS(i,j-1);
return ;
}
int main()
{
while(cin>>r>>c and r+c)
{
REP(i,r) cin>>gr[i];
int res = 0;
REP(i,r)
{
REP(j,c)
{
cnt = 0;
if(gr[i][j] == '*')
{
DFS(i,j);
}
if(cnt==1) res++;
}
}
pri(res);
}
return 0;
}
UVa 11878 - Homework Checker
#include <bits/stdc++.h>
#define REP(i,n) for(int i=0;i<n;i++)
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define REV(i,n) for(int i=n-1;i>=0;i--)
#define pri(a) cout << a << endl;
using namespace std;
int main()
{
char ch,chh;
char r[7];
int a,b,cnt=0;
while(cin>>a>>ch>>b>>chh>>r)
{
if(r[0]=='?') continue;
if(ch=='+')
{
if(a+b == atoi(r)) cnt++;
}
else
{
if(a-b == atoi(r)) cnt++;
}
}
pri(cnt);
return 0;
}
#define REP(i,n) for(int i=0;i<n;i++)
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define REV(i,n) for(int i=n-1;i>=0;i--)
#define pri(a) cout << a << endl;
using namespace std;
int main()
{
char ch,chh;
char r[7];
int a,b,cnt=0;
while(cin>>a>>ch>>b>>chh>>r)
{
if(r[0]=='?') continue;
if(ch=='+')
{
if(a+b == atoi(r)) cnt++;
}
else
{
if(a-b == atoi(r)) cnt++;
}
}
pri(cnt);
return 0;
}
Subscribe to:
Comments (Atom)