2 952
Subscribers
No data24 hours
-47 days
-1230 days
Posts Archive
2 952
#include<bits/stdc++.h>
using namespace std;
const int mod = 1'000'000'007;
const int MAX_CHAR = 26;
long long fac[100002];
void factorial(int size)
{
fac[0]=1;
fac[1]=1;
for (int j = 2; j <=size; j++) {
fac[j]=((fac[j-1]%mod)*j)%mod;
}
}
int countDistinctPermutations(string str)
{
int length = str.length();
int freq[MAX_CHAR]={0};
// memset(freq, 0, sizeof(freq));
for (int i = 0; i < length; i++)
2 952
public class XOR {
public static int findMaxOverlappingSegments(int[] A) {
int N = A.length;
int[][] dp = new int[N+1][N+1];
for (int i = 1; i <= N; i++) {
dp[i][i] = 0;
}
for (int i = 1; i <= N; i++) {
for (int j = i+1; j <= N; j++) {
dp[i][j] = -1;
}
}
for (int len = 2; len <= N; len++) {
for (int i = 1; i <= N-len+1; i++) {
int j = i+len-1;
int xor = 0;
for (int k = i; k <= j; k++) {
xor = xor ^ A[k-1];
}
if (xor == 0) {
dp[i][j] = Math.max(dp[i][j-1], dp[i][j-1] + dp[j][j] + 1);
} else {
dp[i][j] = dp[i][j-1];
}
}
}
return dp[1][N];
}
public static void main(String[] args) {
int[] A = {1, 2, 3, 4, 5, 6, 7, 8, 9};
System.out.println(findMaxOverlappingSegments(A));
}
}
2 952
def min_initial_coins(A, X):
for i in range(len(A)):
X = 2*X - A[i]
if X < 0:
return False
return True
N = int(input())
A = list(map(int, input().split()))
X = max(A)
while not min_initial_coins(A, X):
X += 1
print(X)
2 952
Python
r=int(input())
a=[]
for i in range(r):
b=list(map(int,input().split()))
a.append(b)
c=len(a[0])
ans=set()
i=0
while i<r:
j=0
while j<(c-3):
if a[i][j]==a[i][j+1] and a[i][j]==a[i][j+2] and a[i][j]==a[i][j+3]:
ans.add(a[i][j])
j+=4
else:
j+=1
i+=1
j=0
while j<c:
i=0
while i<(r-3):
if a[i][j]==a[i+1][j] and a[i][j]==a[i+2][j] and a[i][j]==a[i+3][j]:
ans.add(a[i][j])
i+=4
else:
i+=1
j+=1
for i in range(r):
i1=i
j=0
while (i1+3)<r and (j+3)<c:
if a[i1][j]==a[i1+1][j+1] and a[i1][j]==a[i1+2][j+2] and a[i1][j]==a[i1+3][j+3]:
i1+=4
j+=4
ans.add(a[i1][j])
else:
i1+=1
j+=1
for j1 in range(1,c):
j=j1
i1=0
while (i1+3)<r and (j+3)<c:
if a[i1][j]==a[i1+1][j+1] and a[i1][j]==a[i1+2][j+2] and a[i1][j]==a[i1+3][j+3]:
ans.add(a[i1][j])
i1+=4
j+=4
else:
i1+=1
j+=1
for i in range(r):
i1=i
j=(c-1)
while (i1+3)<r and (j-3)>=0:
if a[i1][j]==a[i1+1][j-1] and a[i1][j]==a[i1+2][j-2] and a[i1][j]==a[i1+3][j-3]:
i1+=4
j-=4
ans.add(a[i1][j])
else:
i1+=1
j-=1
for j1 in range(c-2,-1,-1):
j=j1
i1=0
while (i1+3)<r and (j-3)>=0:
if a[i1][j]==a[i1+1][j-1] and a[i1][j]==a[i1+2][j-2] and a[i1][j]==a[i1+3][j-3]:
ans.add(a[i1][j])
i1+=4
j-=4
else:
i1+=1
j-=1
if len(ans)>=1:
print(min(ans))
else:
print(-1)2 952
Beauty number
public static int beautyNumber(int N, long C, int[] A) {
int count = 0;
HashMap subArrays = new HashMap<>();
for (int i = 0; i < N; i++) {
int left = 0, right = 0, sum = 0;
while (sum <= A[i]) {
sum += U[right];
if (sum == A[i]) {
String subArray = Arrays.toString(Arrays.copyOfRange(U, left, right + 1));
if (!subArrays.containsKey(subArray)) {
count++;
subArrays.put(subArray, 1);
}
}
right++;
}
}
return count;
}
2 952
#include <bits/stdc++.h>
using namespace std;
int main() {
string S;
cin >> S;
int n = S.length();
int dp[n + 1];
memset(dp, 0x3f, sizeof dp);
dp[0] = 0;
for (int i = 0; i < n; i++) {
int digit = S[i] - '0';
for (int j = max(0, i - 2); j < i; j++) {
int sum = 0;
for (int k = j; k <= i; k++) {
sum += S[k] - '0';
}
if (sum % 3 == 0) {
int cost = digit;
for (int k = j; k <= i; k++) {
cost = min(cost, S[k] - '0');
}
dp[i + 1] = min(dp[i + 1], dp[j] + cost);
}
}
}
cout << dp[n] << endl;
return 0;
}
C++
INFOSYS EXAM ANS 10AM
