Algo Lab Fahim
Algo Lab Fahim
Lab Report
Submitted to
Md. Rajib Hossain
Lecturer, Dept of CSE
Imperial College of Engineering
Submitted by
Fahim Ahammed Firoz
ID: 1938520126
Part-2, Odd Semester
Dept. of CSE
Imperial College of Engineering
Problem 1: Mice and maze
#include<bits/stdc++.h>
using namespace std;
#define MX 105
#define INF 1000000000
struct node{
int val;
int cost;
};
void reset(){
for (int i = 0; i < MX; i++){
G[i].clear();
vis[i] = 0;
dist[i] = INF;
}
}
class cmp{
public:
bool operator() (node &A, node &B){
if (A.cost > B.cost) return true;
return false;
}
};
int main()
{
//freopen("input.txt", "r", stdin);
int test;
scanf("%d", &test);
#include <iostream>
#include <string>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
ws(cin);
string s;
cin>>s;
int n=s.size();
cout<<"size: "<<n<<endl;
int len=n/3+1;
cout<<"len: "<<len<<endl;
if(len<1){
cout<<"len < 1 : "<<len<<endl;
len=1;
}
string ans;
while(len<=n/2){
cout<<"len <= N/2 : "<<len<<endl;
string tmp=s.substr(n-len,len);
if(tmp==s.substr(n-2*len,len))
ans=tmp;
cout<<"ans tmp : "<<ans<<endl;
len++;
}
for(int i=0;i<8;i++)
cout<<ans[i%ans.size()];
cout<<"..."<<endl;
}
}
Problem-3: Palindrome:
#include <iostream>
using namespace std;
void solve();
int main(){
int t;
cin >> t;
while (t--){
solve();
}
return 0;
}
void solve(){
int a;
cin >> a;
int arr[a];
for (int i = 0; i < a; i++)
cin >> arr[i];
bool flag = false;
for (int i = 0; i < a; i++){
for (int j = i + 2; j < a; j++){
if (arr[i] == arr[j]){
flag = true;
}
}
}
Problem-4:
#include<iostream>
using namespace std;
typedef long long ll;
vector<ll>pi;
int main(){
ll t;
cin>>t;
while(t--){
string s;
cin>>s;
ll len=s.size();
reverse(s.begin(),s.end());
preFunc(s);
ll idx;
for(ll i=len-1;i>=0;i--){
if(pi[i]*2==(i+1)){
idx=pi[i]-1;
break;
}
}
string ans="";
for(ll i=0;i<=idx;i++)ans+=s[i];
len=ans.size();
ll rep=0;
if(len<8){
rep=(8/len);
if(8%len!=0)rep++;
}
for(ll i=0;i<rep;i++){
ans+=ans;
}
reverse(ans.begin(),ans.end());
for(ll i=0;i<8;i++)cout<<ans[i];
cout<<"...\n";
}
return 0;
}