Why won't this simple bitmask dp solution work?

I recently learned dp bitmasking and tried my first problem: https://www.codechef.com/problems/TSHIRTS

I initially have mask of n bits of 1, each set bit representing that the elephant is not assigned a t-shirt yet.
Here is what I have done:

#include <bits/stdc++.h>
using namespace std;
//#pragma GCC optimize "trapv"
#define ll long long

ll const mod = 1e9+7;
ll dp[100][1<<10];
unordered_set<int> adj[10]; //people: tshirt
int n;

ll solve(int i,int mask) {
    if (mask==0)
        return 1;
    if (i>99)
        return 0;
    if (dp[i][mask]!=-1) {
        return dp[i][mask];
    ll ans = 0;
    for (int j=0;j<n;j++) {
        if ((mask & (1<<j))==1 && adj[j].find(i)!=adj[j].end()) 
            ans= (ans+solve(i+1, mask & (~(1<<j))))%mod;
    // also possible to not assign any person to this tshirt at all 
    ans= (ans+ solve(i+1, mask))%mod;
    //cout<<i<<" "<<mask<<" "<<ans<<endl;
    return ans;

int main() {
    int t; cin>>t;
    while (t--) {
        for (int i=0;i<100;i++) {
            for (int j=0;j<(1<<n);j++)
        for (int i=0;i<n;i++) 
        string line;
        getline(cin, line);
        for(int i = 0;i < n; i++) {
            int x;
            getline(cin, line);
            stringstream s(line);
            while(s >> x) 
    return 0;

Why does this code not give expected output ?